Android 微调器在活动中工作,但在片段中不工作
更换这条线Android 微调器在活动中工作,但在片段中不工作,android,android-layout,listview,android-intent,android-fragments,Android,Android Layout,Listview,Android Intent,Android Fragments,更换这条线 01-20 10:39:59.721: D/AndroidRuntime(2062): Shutting down VM 01-20 10:39:59.721: W/dalvikvm(2062): threadid=1: thread exiting with uncaught exception (group=0x41632d88) 01-20 10:39:59.731: E/AndroidRuntime(2062): FATAL EXCEPTION: main 01-20 10:
01-20 10:39:59.721: D/AndroidRuntime(2062): Shutting down VM
01-20 10:39:59.721: W/dalvikvm(2062): threadid=1: thread exiting with uncaught exception (group=0x41632d88)
01-20 10:39:59.731: E/AndroidRuntime(2062): FATAL EXCEPTION: main
01-20 10:39:59.731: E/AndroidRuntime(2062): Process: com.example.mysqltest, PID: 2062
01-20 10:39:59.731: E/AndroidRuntime(2062): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mysqltest/com.example.jobtracker.ReadComments}: java.lang.NullPointerException
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread.access$800(ActivityThread.java:144)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.os.Handler.dispatchMessage(Handler.java:102)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.os.Looper.loop(Looper.java:212)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread.main(ActivityThread.java:5135)
01-20 10:39:59.731: E/AndroidRuntime(2062): at java.lang.reflect.Method.invokeNative(Native Method)
01-20 10:39:59.731: E/AndroidRuntime(2062): at java.lang.reflect.Method.invoke(Method.java:515)
01-20 10:39:59.731: E/AndroidRuntime(2062): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
01-20 10:39:59.731: E/AndroidRuntime(2062): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
01-20 10:39:59.731: E/AndroidRuntime(2062): at dalvik.system.NativeStart.main(Native Method)
01-20 10:39:59.731: E/AndroidRuntime(2062): Caused by: java.lang.NullPointerException
01-20 10:39:59.731: E/AndroidRuntime(2062): at com.example.jobtracker.JobqueueFragment.onCreateView(JobqueueFragment.java:72)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.Fragment.performCreateView(Fragment.java:1700)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.BackStackRecord.run(BackStackRecord.java:684)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1455)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.Activity.performStart(Activity.java:5240)
01-20 10:39:59.731: E/AndroidRuntime(2062): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
01-20 10:39:59.731: E/AndroidRuntime(2062): ... 11 more
由此
Spinner spinner = (Spinner) getActivity().findViewById(R.id.spinner_status);
尝试进行如下更改:
Spinner spinner = (Spinner) inflate.findViewById(R.id.spinner_status);
创建视图时的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图充气=充气机。充气(R.layout.fragment\u作业队列,容器,false);
//这里有一个零钱
ctx=getActivity().getApplicationContext();
mainListView=(ListView)充气。findViewById(R.id.list);
//第二个变化在这里
微调器微调器=(微调器)充气。findViewById(R.id.Spinner\u状态);
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter adapters=ArrayAdapter.createFromResource(ctx,
R.array.spinner\u项,android.R.layout.simple\u spinner\u项);
//指定显示选项列表时要使用的布局
adapters.setDropDownViewResource(android.R.layout.simple\u spinner\u dropdown\u项目);
//将适配器应用于微调器
旋转器。设置适配器(适配器);
新建作业队列().execute();
回充气;
}
按如下方式更改代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_jobqueue, container, false);
// ONE CHANGE HERE
ctx = getActivity().getApplicationContext();
mainListView = (ListView) inflate.findViewById(R.id.list);
//SECOND CHANGE HERE
Spinner spinner = (Spinner) inflate.findViewById(R.id.spinner_status);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapters = ArrayAdapter.createFromResource(ctx,
R.array.spinner_item, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapters.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapters);
new JobQueue().execute();
return inflate;
}
首先更改您的ctx
,如下所示:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_jobqueue, container, false);
// ONE CHANGE HERE
ctx = getActivity().getApplicationContext();
mainListView = (ListView) inflate.findViewById(R.id.list);
//SECOND CHANGE HERE
Spinner spinner = (Spinner) inflate.findViewById(R.id.spinner_status);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapters = ArrayAdapter.createFromResource(ctx,
R.array.spinner_item, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapters.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapters);
new JobQueue().execute();
return inflate;
}
而不是
ctx=JobqueueFragment.this.getActivity();
您的布局fragment\u作业队列
不包含您的微调器
,因此您无法在片段类的微调器
中直接绑定数据。这就是您实际遇到空指针错误的地方。
使用此代码
Spinner-Spinner=(Spinner)充气。findViewById(R.id.Spinner\u状态);
ArrayAdapter adapters=ArrayAdapter.createFromResource(getActivity(),
R.array.spinner\u项,android.R.layout.simple\u spinner\u项);
adapters.setDropDownViewResource(android.R.layout.simple\u spinner\u dropdown\u项目);
现在你的问题就解决了。
有任何疑问,请发表评论
请发布类
com.example.jobtracker.JobqueueFragment.onCreateView(JobqueueFragment.java:72)
的代码和行号72。它不允许我添加完整的代码。。我能得到你的邮箱号码吗。。这样我就可以向你发送完整的代码了。你可以在这里发布完整的代码,并分享关于你问题的链接@user347991601-20 10:27:22.923:E/AndroidRuntime(32454):进程:com.example.mysqltest,PID:32454 01-20 10:27:22.923:E/AndroidRuntime(32454):java.lang.RuntimeException:无法启动活动组件信息{com.example.mysqltest/com.example.jobtracker.ReadComments}:java.lang.NullPointerException 01-20 10:27:22.923:E/AndroidRuntime(32454):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)01-20 10:27:22.923:E/AndroidRuntime(32454):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)在问题中发布完整的日志猫错误@user347991601-20 10:27:22.923:E/AndroidRuntime(32454):进程:com.example.mysqltest,PID:32454 01-20 10:27:22.923:E/AndroidRuntime(32454):java.lang.RuntimeException:无法启动活动组件信息{com.example.mysqltest/com.example.jobtracker.ReadComments}:java.lang.NullPointerException 01-20 10:27:22.923:E/AndroidRuntime(32454):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)01-20 10:27:22.923:E/AndroidRuntime(32454):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)–
Spinner spinner = (Spinner) inflate.findViewById(R.id.spinner_status);
ArrayAdapter<CharSequence> adapters = ArrayAdapter.createFromResource(getActivity(),
R.array.spinner_item, android.R.layout.simple_spinner_item);
adapters.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);