2013-04-16 25 views
0

所以這是我fPretraga類:NPE在片段變化拋出(無法解決fragment.getView())

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

功能應該功能加載變量(在這種情況下,使用預設的字符串值數組來將微調器膨脹並將一個文本框的文本設置爲默認的「0」值)。我的假設是NPE被拋出,因爲getView()沒有返回我期待的View,即我寫的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):Štase desilo?

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):at 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):at 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):at android.app.ActivityThread.main(ActivityThread.java:4340)

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

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。運行(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,免費10102K/10439K 4%,暫停3毫秒+ 4ms的

+0

堆棧跟蹤? –

+0

第二塊代碼在哪裏? – Egor

+0

嘗試'getActivity()'而不是'getView()' – TronicZomB

回答

0

在onCreateView你必須這樣做:

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


然後你就可以調用微調無處不在...從logcat的請

+0

但這就是我想要避免的... – NitroNbg

+0

你想從片段活動設置視圖?它在哪一行中斷? – Jovan