0

所以这是我的 fPretraga 课程:

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

该函数应该加载变量(在这种情况下,使用预设的字符串值数组对 Spinner 进行膨胀,并将一个文本框的文本设置为其默认的“0”值)。我的假设是抛出 NPE 是因为 getView() 没有返回我期望的视图,即我写的 onCreateView 是错误的。因为 id "spinnerOblasti" 存在于 "izgled_pretraga.xml" 文件中。有什么想法吗?提前致谢。

LogCat 日志:

04-16 14:17:19.866:D/gralloc_goldfish(541):没有检测到 GPU 仿真的仿真器。

04-16 14:18:50.356: E/LOAD_TAG(541): Šta se desilo?

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

04-16 14:18:50.356: E/LOAD_TAG(541): at com.markosoft.maturko.Maturko.UcitajPromenljive(Maturko.java:214)

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

04-16 14:18:50.356: E/LOAD_TAG(541): 在 com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:512)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:893)

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

04-16 14:18:50.356: E/LOAD_TAG(541): 在 android.view.View.performClick(View.java:3480)

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

04-16 14:18:50.356: E/LOAD_TAG(541): 在 android.os.Handler.handleCallback(Handler.java:605)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 android.os.Handler.dispatchMessage(Handler.java:92)

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

04-16 14:18:50.356: E/LOAD_TAG(541): 在 android.app.ActivityThread.main(ActivityThread.java:4340)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 java.lang.reflect.Method.invokeNative(Native Method)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 java.lang.reflect.Method.invoke(Method.java:511)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)

04-16 14:18:50.356: E/LOAD_TAG(541): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)

04-16 14:18:50.356: E/LOAD_TAG(541): at dalvik.system.NativeStart.main(Native Method)

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

4

1 回答 1

0

在 onCreateView 你必须这样做:

View view = inflater.inflate(R.layout.izgled_pretraga, null);
oblasti =(Spinner)  view.findViewById(R.id.spinnerOblasti);
return view;


然后你可以在任何地方调用 spinner ......

于 2013-04-16T14:40:25.423 回答