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 を文字列値のプリセット配列で膨らませ、1 つのテキストボックスのテキストをデフォルトの「0」値に設定します)。getView() が期待していたビューを返さないため、つまり、私が書いた onCreateView が間違っているため、NPE がスローされるというのが私の推測です。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): 目的を達成した?

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

04-16 14:18:50.356: E/LOAD_TAG (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_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(ネイティブ メソッド) で

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): dalvik.system.NativeStart.main (ネイティブ メソッド) で

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;


そして、どこでもスピナーを呼び出すことができます...

于 2013-04-16T14:40:25.423 に答える