使用Interface
可將事件發送回活動並在收到活動時更新列表或數據庫。
接口是將消息傳遞給「外部世界」的方式。看看簡單的button onClickListener
。您基本上在按鈕上調用setOnClickListener(this)
並實現onClickListener
,這裏是interface
。無論何時點擊按鈕,您都會收到onClick
的事件。它是通過活動之間的消息,而無需意圖的最安全的方式(根據我這是一個巨大的痛苦中......)下面是一個例子:
例子:
class A extends Activity implements EventInterface{
public A(){
//set a listener. (Do not forget it!!!)
//You can call it wherever you want;
//just make sure that it is called before you need something out of it.
//safest place is onCreate.
setEventInterfaceListener(A.this);
}
//this method will be automatically added once you implement EventInterface.
void eventFromClassB(int event){
//you receive events here.
//Check the "event" variable to see which event it is.
}
}
class B{
//Interface logic
public interface EventInterface{
public static int BUTTON_CLICKED = 1;
void eventFromClassB(int event);
}
static EventInterface events;
public static void setEventInterfaceListener(EventInterface listener) {
events = listener;
}
private void dispatchEvent(int trigger) {
if (events != null) {
events.eventFromClassB(trigger);
}
}
//Interface ends
void yourMethod(){
//Call this whenever you want to send an event.
dispatchEvent(BUTTON_CLICKED);
}
}
嘗試定義您的項目靜態全局和您的列表視圖。或者使用Bundle和putextras – 2013-05-11 11:27:23
我無法將數據發回到距離後臺僅5步的活動。其實我甚至不知道要更改哪個ListView。如果全局變量是不可能的,那麼它不適合使用,但是在這些活動中使用onresume事件只是從數據庫或任何你想要的地方重新創建列表,所以也有靜態數據不會工作,因爲有活動的多個實例有列表 – user1537779 2013-05-11 11:28:58
。 – 2013-05-11 11:36:56