2013-04-09 63 views
0

對於我的題目問題,我很抱歉。我會盡力澄清我的問題。 我試着運行此代碼來填充我的微調:如何解決片段內的視圖?

public void UcitajPromenljive(int id) 
{ 
    if(id==0) 
    { 
     //#SPISAK 
    } 
    if(id==1) 
    { 
     //#PRETRAGA 
     try 
     { 
      Spinner oblasti = (Spinner) 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); 
     } 
     catch(NullPointerException e) 
     { 
      Log.e("LOAD_TAG", e.getMessage()); 
     } 
    } 
    if(id==2) 
    { 
     //#OSTALO 
    } 
} 

果然,我確實得到了NPE,但我已經在類似的問題,這個問題是在代碼的第一行中。我的應用程序有三個不同的標籤,已經物化爲碎片。所以,當我運行findViewById(R.id.spinnerOblasti)應用程序返回NPE,因爲我的佈局,只有動作條和一個相對佈局作爲其財產,相對佈局通過

class MyTabListener implements ActionBar.TabListener 
{ 
    public android.app.Fragment fragment; 
    private Toast lol; 
    public MyTabListener(android.app.Fragment fragment) 
    { 
     this.fragment = fragment; 
    } 

    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     ft.remove(fragment); 
     lol.cancel(); 
    } 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     lol = Toast.makeText(getApplicationContext(), tab.getText(), Toast.LENGTH_SHORT); 
     lol.show(); 
     ft.replace(R.id.okvir, fragment); 
     UcitajPromenljive(tab.getPosition()); 
    } 

    public void onTabReselected(Tab tab, FragmentTransaction ft) { 

    } 
} 

填充所以我的問題是 - 如何我是否處理某個.xml文件的子元素,它會擴展其中一個片段(製表符)?隨意要求澄清,我知道這是我寫的有點混淆。提前致謝。乾杯

回答

0

存放在onCreateView()參考您的片段來看,即把結果視圖中的片段全球範圍內,即

protected View mFragementView; 

,然後當你需要你的片段佈局中找到一些只做:

mFragmentView.findViewById(....); 

例子:

public class MyFragment extends Fragment { 

    protected View mFragmentView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
     mFragmentView = super.onCreateView(inflater, container, savedInstanceState); 
    } 

    public void UcitajPromenljive(int id) { 
     View v = mFragmentView.findViewById(R.id.....); 
    } 
} 
+0

謝謝,但我將如何解決它在功能呢? 編輯:在UcitajPromenljive功能 – NitroNbg 2013-04-09 11:57:20

+0

請參閱編輯答案 – 2013-04-09 12:12:12

+0

仍然收到相同的錯誤(應用程序正在拋出NPE) – NitroNbg 2013-04-09 12:36:52