我在某個時刻更改了我的Activity的ContentView。 (到View2)。 將其更改回View1後,偵聽器不再工作。 我已經嘗試將監聽器放在onResume()方法中。setContentView和Listeners
無論如何,使用setContentView()來顯示例如進度屏幕/請稍候,...(而asyncTask正在運行)。 或者你應該每個活動只有一個mainView? (並動態替換內容)。
//編輯:更具體: 我在尋找類似
LinearLayout item = (LinearLayout) findViewById(R.id.mainView);
View child = getLayoutInflater().inflate(R.layout.progress, null);
item.addView(child);
但不是添加「progress.xml」,它應該刪除當前的佈局,只顯示「的進展。 XML」。 我需要一個「容器」並顯示/隱藏mainView /進度嗎? 但是,這似乎並沒有很合適的給我...
參見下面的代碼(剝離)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doSomething();
}
});
}
setContentView(R.layout.view2);
[...]
setContentView(R.layout.view1);
//Listener not more working
如何創建'按鈕'?你需要顯示更多的代碼。 – 2012-02-10 01:54:24
我認爲你的方法在某些情況下是可以的(例如,view1是一個加載或啓動屏幕,view2是內容。處理這個問題的一種方法是將view1和view2的內容放在嵌套在FrameLayout下的同一個佈局文件中,從View.GONE到View.VISIBLE的可見性,必要時使用View#setVisibility()。 – nmr 2012-02-10 02:14:54