У меня есть mainfragment.java
и я добавил viewpager
в mainfragment.java
. В этом ViewPager есть mobile_fragment.java
.Когда я нажимаю редактировать текст-в mobile_fragment.java
с помощью Intent, чтобы открыть телефонные контакты после пользователя нажмите контакты, получить результат, используя Onactivityresult, но результат не придет в mobile_fragment.java
. Onactivityresult доходит до mainfragment.java
, а не для mobile_fragment.java
in viewpager. Я думаю, проблема связана с вложенным фрагментом. Я сделал кое-что в обоих классах, но у меня возникла ошибка NullpointerException
. Я не знаю, как решить эту проблему. Пожалуйста, помогите мне решить эту проблему.Onactivityresult не работает нормально во вложенном фрагменте класса android
mainfragment.java
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (other_fragments != null){
String phoneNo = null ;
Uri uri = data.getData();
Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
int phoneIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
phoneNo = cursor.getString(phoneIndex);
Intent output = new Intent();
output.putExtra("number", ""+phoneNo);
other_fragments.onActivityResult(requestCode, resultCode, output);
}
}
mobile_fragment.java
//This fragment i have edit-text.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == getActivity().RESULT_OK) {
String te=data.getStringExtra("number");
Log.v("TAG_TA",""+te);
// It prints the log values correctly.
prepaid_mobilenum_edt.setText(""+data.getStringExtra("number"));//NullPointerException comes here.
}
}
Журнал ошибок
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65537, result=-1, data=Intent { dat=content://com.android.contacts/data/80704 flg=0x1 }} to activity {com.reloadapp.reload/com.reloadapp.reload.fragments.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:2997)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3040)
at android.app.ActivityThread.access$1100(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1191)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.reloadapp.reload.fragments.Mobile_Fragment.onActivityResult(Mobile_Fragment.java:1236)
at com.reloadapp.reload.fragments.Main_frag_one.onActivityResult(Main_frag_one.java:97)
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:163)
at android.app.Activity.dispatchActivityResult(Activity.java:4654)
at android.app.ActivityThread.deliverResults(ActivityThread.java:2993)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3040)
at android.app.ActivityThread.access$1100(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1191)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
onCreateview в mobile_fragment:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// TODO Auto-generated method stub
if (container == null) {
return null;
}
prepaid_mobilenum_edt = (EditText) lay.findViewById(R.id.mobile_prepaid_mobilenum_edttxt);
return lay;
}
любой один помочь мне, пожалуйста –