2015-05-09 37 views
-1

我剛剛進入android開發,並且在使用之前初始化任何東西時,我一直遇到同樣的問題。我的應用程序總是崩潰,因爲試圖在空對象上使用方法,即使我像在本網站上詢問的其他問題一樣初始化它。爲什麼我在Android Studio中的初始化什麼都不做?

ll=(LinearLayout) findViewById(R.id.slider); 

爲什麼這行不能在我的onCreate?我有私人LinearLayout ll;在代碼之前,但由於某種原因,它什麼都不做。我對EditText有類似的問題,我使用了一個我認爲等同於充氣器的視圖,但在這種情況下似乎不起作用。我只是困惑,爲什麼上面的這條線適用於除我以外的每個人。滑塊是xml文件中另一個LinearLayout的名稱。

回答

1

請檢查您是否在onCreate回調中調用了setContentView(R.layout.your_layout_for_activity)。它從佈局資源中設置活動內容。資源將被誇大,將所有頂級視圖添加到活動中。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout_for_activity); 
    // do something 
} 

之後,如果您嘗試使用findViewById,它將引用上述佈局以查找視圖。

如果上述內容沒有幫助,請分享代碼片段。

+0

不應該這樣嗎? @SuppressWarnings(「deprecation」) public class MyActivity extends ActionBarActivity { PopupWindow pw; EditText edit,edit2; 字符串名稱; 字符串密碼; 私有LinearLayout ll; private float startX; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); ll =(LinearLayout)findViewById(R.id.slider); setContentView(R.layout.activity_my); } – Seeray

+0

我一直在線ll =(LinearLayout)findViewById(R.id.slider); setContentView之前和之後似乎沒有任何變化 – Seeray

+0

1.在您嘗試使用findViewById(..) 之前,setContentView(..)必須存在2.實際爲您的Activity設置的佈局中必須存在R.id.slider在上下文中。所以,如果MainActivty具有的setContentView(R.layout.my_act),my_act.xml的ID必須爲一個的LinearLayout =滑塊 3.你可能會檢查佈局的任何嵌套層次 Mithun