Android 片段更改时引发的NPE(can';t地址fragment.getView())

Android 片段更改时引发的NPE(can';t地址fragment.getView()),android,nullpointerexception,fragment,Android,Nullpointerexception,Fragment,这是我的FPRETAGA课程: public class FragmentPretraga extends android.app.Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.izgled_pre

这是我的FPRETAGA课程:

public class FragmentPretraga extends android.app.Fragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        return inflater.inflate(R.layout.izgled_pretraga, container, false);
    }
}
这就是函数

try
        {
            Spinner oblasti = (Spinner) fPretraga.getView().findViewById(R.id.spinnerOblasti);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.oblasti, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            oblasti.setAdapter(adapter);
            EditText sranje = (EditText) fPretraga.getView().findViewById(R.id.editBrojDjaka);
            sranje.setText("0");
        }
        catch(NullPointerException e)
        {
            Log.e("LOAD_TAG","Šta se desilo?",e);
        }
试试看
{
微调器oblasti=(微调器)fpretaga.getView().findViewById(R.id.spinnerOblasti);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.oblasti,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
扁率设置适配器(适配器);
EditText sranje=(EditText)fpretaga.getView().findViewById(R.id.editBrojDjaka);
sranje.setText(“0”);
}
捕获(NullPointerException e)
{
Log.e(“装载标签”、“设计图纸?”,e);
}
该函数用于加载变量(在本例中,使用预设的字符串值数组对微调器进行充气,并将一个文本框的文本设置为其默认的“0”值)。我的假设是NPE被抛出是因为getView()没有返回我期望的视图,即我编写的onCreateView是错误的。因为id“SpinnerOplasti”存在于“izgled_pretraga.xml”文件中。有什么想法吗? 提前谢谢

LogCat日志:

04-16 14:17:19.866:D/gralloc_金鱼(541):未检测到GPU仿真的仿真器

04-16 14:18:50.356:E/LOAD_标签(541):设计

04-16 14:18:50.356:E/LOAD_标记(541):java.lang.NullPointerException

04-16 14:18:50.356:E/LOAD_标签(541):位于com.markosoft.maturko.maturko.UcitajPromenljive(maturko.java:214)

04-16 14:18:50.356:E/LOAD_TAG(541):在com.markosoft.maturko.maturko$MyTabListener.onTabSelected(maturko.java:181)

04-16 14:18:50.356:E/LOAD_标签(541):位于com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:512)

04-16 14:18:50.356:E/LOAD_标签(541):位于com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:893)

04-16 14:18:50.356:E/LOAD_标记(541):在com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:488)

04-16 14:18:50.356:E/LOAD_标签(541):在android.view.view.performClick(view.java:3480)

04-16 14:18:50.356:E/LOAD_标记(541):在android.view.view$PerformClick.run(view.java:13983)

04-16 14:18:50.356:E/LOAD_标记(541):位于android.os.Handler.handleCallback(Handler.java:605)

04-16 14:18:50.356:E/LOAD_标记(541):位于android.os.Handler.dispatchMessage(Handler.java:92)

04-16 14:18:50.356:E/LOAD_标签(541):在android.os.Looper.loop(Looper.java:137)上

04-16 14:18:50.356:E/LOAD_标记(541):位于android.app.ActivityThread.main(ActivityThread.java:4340)

04-16 14:18:50.356:E/LOAD_标记(541):位于java.lang.reflect.Method.invokenactive(本机方法)

04-16 14:18:50.356:E/LOAD_标记(541):位于java.lang.reflect.Method.invoke(Method.java:511)

04-16 14:18:50.356:E/LOAD_标签(541):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)

04-16 14:18:50.356:E/LOAD_标签(541):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)

04-16 14:18:50.356:E/LOAD_标签(541):位于dalvik.system.NativeStart.main(本机方法)

04-16 14:18:50.746:D/dalvikvm(541):GC_并发释放214K,4%释放10102K/10439K,暂停3ms+4ms


在onCreateView中,必须执行以下操作:



然后您可以在任何地方调用spinner…

请从logcat调用stacktrace?第二段代码驻留在哪里?请尝试
getActivity()
而不是
getView()
@SankarV稍等片刻,或者在选择不同选项卡时调用的函数中。TronicZomB尝试过,但那“更错了;”要诊断它,我需要删除
catch(NullException e)
部分,让它崩溃。然后我会发布结果日志。我猜你的布局中没有android.R.layout.simple\u微调器\u下拉菜单项。但这只是猜测。你想从片段活动中设置视图吗?它在哪一行中断?
View view = inflater.inflate(R.layout.izgled_pretraga, null);
oblasti =(Spinner)  view.findViewById(R.id.spinnerOblasti);
return view;