从 FragmentActivity 移动到另一个 FragmentActivity 时出现 NullPointerException
NullPointerException when move from FragmentActivity to another FragmentActivity
我想从 Fragment Activity 移动到另一个 Fragment Activity 有标签,但是当设备 运行 而不是它 运行 时我得到 NullPointerException在模拟器上正确有帮助吗?谢谢。
编辑:这是logcat
09-10 00:24:05.139: E/AndroidRuntime(20107): FATAL EXCEPTION: main
09-10 00:24:05.139: E/AndroidRuntime(20107): java.lang.RuntimeException: Unable to start activity ComponentInfo{inet.firstproject/inet.firstproject.MainViewActivity}: java.lang.NullPointerException
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.access0(ActivityThread.java:157)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.os.Handler.dispatchMessage(Handler.java:99)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.os.Looper.loop(Looper.java:176)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.main(ActivityThread.java:5317)
09-10 00:24:05.139: E/AndroidRuntime(20107): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 00:24:05.139: E/AndroidRuntime(20107): at java.lang.reflect.Method.invoke(Method.java:511)
09-10 00:24:05.139: E/AndroidRuntime(20107): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-10 00:24:05.139: E/AndroidRuntime(20107): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-10 00:24:05.139: E/AndroidRuntime(20107): at dalvik.system.NativeStart.main(Native Method)
09-10 00:24:05.139: E/AndroidRuntime(20107): Caused by: java.lang.NullPointerException
09-10 00:24:05.139: E/AndroidRuntime(20107): at inet.firstproject.MainPageActivity.onCreateView(MainPageActivity.java:64)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1181)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.Activity.performStart(Activity.java:5336)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2227)
09-10 00:24:05.139: E/AndroidRuntime(20107): ... 11 more
这是oncreateView
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
String []athathTypes={"ggg","lll"};
Bundle bundle = this.getArguments();
int type = 0; ;
if(bundle!=null)
type= (int) bundle.getLong("Type");
if(isOnline()){
con.delegate= this;
if(isOnline()){
//con.execute(" http://google.com");
}
else
{
toast("off line ");
}
}
LinearLayout l= (LinearLayout)inflater.inflate(R.layout.activity_main_page, container, false);
athathList=(ListView) l.findViewById(R.id.listView1);
// athathType=(TextView) l.findViewById(R.id.athathtype);
// athathType.setText(athathTypes[type]);
String []images={"a","b"};;
String[] details={"a","b"};;
String [] discountedprice={"a","b"};;
String [] price={"a","b"};;
String []discount={"a","b"};;
athathList.setAdapter(new MainAdapter(getActivity(),images,details,discountedprice,price,discount));
ImageButton deps=(ImageButton) l.findViewById(R.id.departments);
deps.setOnClickListener(new OnClickListener() {//this is line #64
@Override
public void onClick(View arg0) {
Intent selctionAct=new Intent(getActivity(), SelectionActivity.class);
startActivity(selctionAct);
}
});
return l;
}
ImageButton deps=(ImageButton) l.findViewById(R.id.departments);
正在返回 null
。
当你在实际设备上而不是模拟器上看到它时 运行 的原因,我怀疑是因为你为 activity_main_page
定义了多个布局。检查此文件的所有版本 (landscape/portrait/large/etc..) 并确保它们包含 ID 为 "departments".
的图像按钮
我想从 Fragment Activity 移动到另一个 Fragment Activity 有标签,但是当设备 运行 而不是它 运行 时我得到 NullPointerException在模拟器上正确有帮助吗?谢谢。
编辑:这是logcat
09-10 00:24:05.139: E/AndroidRuntime(20107): FATAL EXCEPTION: main
09-10 00:24:05.139: E/AndroidRuntime(20107): java.lang.RuntimeException: Unable to start activity ComponentInfo{inet.firstproject/inet.firstproject.MainViewActivity}: java.lang.NullPointerException
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2309)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.access0(ActivityThread.java:157)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.os.Handler.dispatchMessage(Handler.java:99)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.os.Looper.loop(Looper.java:176)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.main(ActivityThread.java:5317)
09-10 00:24:05.139: E/AndroidRuntime(20107): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 00:24:05.139: E/AndroidRuntime(20107): at java.lang.reflect.Method.invoke(Method.java:511)
09-10 00:24:05.139: E/AndroidRuntime(20107): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-10 00:24:05.139: E/AndroidRuntime(20107): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-10 00:24:05.139: E/AndroidRuntime(20107): at dalvik.system.NativeStart.main(Native Method)
09-10 00:24:05.139: E/AndroidRuntime(20107): Caused by: java.lang.NullPointerException
09-10 00:24:05.139: E/AndroidRuntime(20107): at inet.firstproject.MainPageActivity.onCreateView(MainPageActivity.java:64)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1861)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1181)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.Activity.performStart(Activity.java:5336)
09-10 00:24:05.139: E/AndroidRuntime(20107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2227)
09-10 00:24:05.139: E/AndroidRuntime(20107): ... 11 more
这是oncreateView
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
String []athathTypes={"ggg","lll"};
Bundle bundle = this.getArguments();
int type = 0; ;
if(bundle!=null)
type= (int) bundle.getLong("Type");
if(isOnline()){
con.delegate= this;
if(isOnline()){
//con.execute(" http://google.com");
}
else
{
toast("off line ");
}
}
LinearLayout l= (LinearLayout)inflater.inflate(R.layout.activity_main_page, container, false);
athathList=(ListView) l.findViewById(R.id.listView1);
// athathType=(TextView) l.findViewById(R.id.athathtype);
// athathType.setText(athathTypes[type]);
String []images={"a","b"};;
String[] details={"a","b"};;
String [] discountedprice={"a","b"};;
String [] price={"a","b"};;
String []discount={"a","b"};;
athathList.setAdapter(new MainAdapter(getActivity(),images,details,discountedprice,price,discount));
ImageButton deps=(ImageButton) l.findViewById(R.id.departments);
deps.setOnClickListener(new OnClickListener() {//this is line #64
@Override
public void onClick(View arg0) {
Intent selctionAct=new Intent(getActivity(), SelectionActivity.class);
startActivity(selctionAct);
}
});
return l;
}
ImageButton deps=(ImageButton) l.findViewById(R.id.departments);
正在返回 null
。
当你在实际设备上而不是模拟器上看到它时 运行 的原因,我怀疑是因为你为 activity_main_page
定义了多个布局。检查此文件的所有版本 (landscape/portrait/large/etc..) 并确保它们包含 ID 为 "departments".