我的主類有一個名爲commitChanges()的公共方法。 我的佈局包含擴展EditTexts當按下後退按鈕可同時檢測,如下建議:Get back key event on EditText在主要活動上調用公共方法
現在,當檢測到後退按鈕按下的時候,我需要執行的CommitChanges,其存儲內容到一個數組。然而commitChanges需要訪問活動的列表視圖。
問題是:如何訪問主活動的commitChange函數?我將需要主要活動的實例。擴展的EditText的繼承人的代碼:
public class BackText extends EditText{
private static final String TAG = "baby";
public BackText(Context context) {
super(context);
}
public BackText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BackText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) &&
event.getAction() == KeyEvent.ACTION_UP) {
Log.d(TAG,"keypad exit");
commitChange(this);
return false;
}
return super.dispatchKeyEvent(event);
}
}
說明我是一個初學者,這很適合我先進。注2:這與服務/多項活動無關。 BackTexts被放置在主要活動中。
似乎是一個很大的努力對於這樣一個簡單的事情。另外:我的主類現在擴展ListActivity。我是否需要製作一個擴展BroadcastReceiver的子類來操縱需要更新的數組? –
我會創建一個擴展BroadcastReceiver的匿名成員對象。我同意這是一個很大的努力,但從一個小部件調用一個活動實例可能是一個不好的破解。我很想被證明,否則:) – Macondo2Seattle