我作爲android開發人員(目前是PHP程序員)非常新。我試圖通過遵循谷歌開發人員和其他網站的各種教程來學習android。不能從活動的片段中獲取包參數
我的問題是,我不能在我的片段中獲取捆綁參數,這是在我的活動中設置的。
這裏是我的HomeActivity的方法:
public void SelectItem(int possition) {
Fragment fragment = new FragmentImageList();
Bundle bundle = new Bundle();
if (possition <= 3) {
bundle.putString("test_string", "Hello test");
fragment.setArguments(bundle);
FragmentManager frgManager = getFragmentManager();
frgManager.beginTransaction().replace(R.id.image_list_frame, fragment)
.commit();
}
}
這裏是我的FragmentImageList片段:
public FragmentImageList() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext=getArguments().getString("test_string");
Log.d("test string",strtext);
Bundle bundle = this.getArguments();
Log.d(TAG, bundle.getString("test_string"));
View view = inflater.inflate(R.layout.fragment_image_list, container,
false);
GridView gridView = (GridView) view.findViewById(R.id.gridView);
gridView.setAdapter(new GridViewAdapter());
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String url = (String) view.getTag();
Log.d(TAG, url);
Intent intent = new Intent(view.getContext(), DetailActivity.class);
intent.putExtra("EXTRA_IMAGE", url);
startActivity(intent);
}
});
return view;
}
我的錯誤日誌
07-04 22:16:49.908 1200-1200/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid parameter app
07-04 22:16:49.908 1200-1200/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid package name : Perhaps you didn't include a PendingIntent in the extras?
07-04 22:16:50.033 14550-14550/? E/PhotosPlugin﹕ Loading PhotosPlugin
07-04 22:16:50.480 14620-14620/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.sujit.wallpapersnepal, PID: 14620
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sujit.wallpapersnepal/com.sujit.wallpapersnepal.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
at com.sujit.wallpapersnepal.FragmentImageList.onCreateView(FragmentImageList.java:37)
at android.app.Fragment.performCreateView(Fragment.java:2053)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.app.BackStackRecord.run(BackStackRecord.java:834)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1452)
at android.app.Activity.performStart(Activity.java:6005)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115)
07-04 22:16:52.006 14729-14729/? E/SysUtils﹕ ApplicationContext is null in ApplicationStatus
07-04 22:16:52.782 14820-14820/? E/ObjectHelper﹕ Can't find method:setCompatibilityInfo
07-04 22:16:54.497 15063-15063/? E/SysUtils﹕ ApplicationContext is null in ApplicationStatus
07-04 22:16:54.613 1200-1200/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid parameter app
字符串strText的= getArguments()的getString ( 「test_string」);不行。我也試過 Bundle bundle = this.getArguments(); Log.d(TAG,bundle.getString(「test_string」));但它也不起作用。但是,如果我評論這些捆綁線,那麼應用程序運行良好,沒有錯誤。這個「test_string」只是我試圖使它工作的一個測試參數。所以,我想知道我做了什麼錯誤,竟然放棄了我這個錯誤
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sujit.wallpapersnepal/com.sujit.wallpapersnepal.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
編輯:我想在我的Nexus 5的Android版本上運行這個程序5.1.1
你聲明片段在佈局呢? – Blackbelt
@Blackbelt,在我activity_home佈局是的,我已宣佈片段<的FrameLayout 機器人:ID = 「@ + ID/image_list_frame」 機器人:layout_width = 「match_parent」 機器人:layout_height = 「match_parent」/> –