我需要在活動中啓動佈局之前執行方法。如果我調用我需要在onCreate()內執行的方法,它會在佈局設置之前執行嗎?Android:如何在活動中啓動/創建佈局之前執行方法
原因是因爲我需要該方法返回佈局中顯示的一條信息,然後才啓動它。會喜歡這方面的一些反饋。與Android Studio中創建
我需要在活動中啓動佈局之前執行方法。如果我調用我需要在onCreate()內執行的方法,它會在佈局設置之前執行嗎?Android:如何在活動中啓動/創建佈局之前執行方法
原因是因爲我需要該方法返回佈局中顯示的一條信息,然後才啓動它。會喜歡這方面的一些反饋。與Android Studio中創建
你可以做任何你以前像這樣的setContentView喜歡檢索:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int i = 0;
setContentView(R.layout.main);
}
}
只要你不與沒有被誇大尚未
意見互動210例如,這是一個錯誤:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ERROR, CAN'T TOUCH UI ELEMENTS
ImageView img = (ImageView)findViewById(R.id.img);
setContentView(R.layout.main);
}
}
謝謝!這就是我一直在尋找:) – user3519023
不客氣:) –
默認活動包含下面的代碼
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Here is code, that executed before layout inflated
setContentView(R.layout.example_activity); //This line inflates layout
}
順便說一句,你甚至可以刪除setContentView
和programmaticaly膨脹佈局。
在onCreate()
之前完成,最好是在致電setContentView()
之前完成。但是,如果要接收的數據來自網絡,則將在單獨的Thread
(因爲在主Thread
上不能進行網絡呼叫)時獲得該數據。在這種情況下,佈局在獲得數據之前幾乎肯定會顯示。
一個解決方案是將獲得的數據塊啓動Activity
之前,通過它在Intent
作爲額外的,然後在onCreate()
使用getIntent().getStringExtra()
你可能有setContentView()
膨脹的佈局Activity.onCreate()
,所以你需要把你的函數調用該方法調用setContentView()
之前。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
yourFunctionCallHere();
setContentView(R.layout.act_main);
}
閱讀活動生命週期。 –
'onCreate()'可能是地方,但它取決於你的具體情況。我認爲你的問題需要更多的信息。 – PPartisan
'它會在佈局設置之前執行嗎?'是的,在調用'setContentView()'之前調用你的方法。 –