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);