2013-02-02 20 views
1

我有我的活動中包含的菜單xml,即時使用onClick屬性,而不是綁定每個startActivity。使用android:onClick與其他活動的方法?

我的問題是,我怎麼能定義對XML的onClick ATTR調用它位於我mainActivity例如方法?

我想過像安卓的onClick =「mainActivity.doSomething」,但它不工作。

回答

5

在XML的onclick使用是bad idea.事實是,它只是試圖找到當前類是在其中使用它的方法。要做到這一點,如果你真的想這樣做,這樣的一個方法是:

startActivity:

public void callOtherMethod(){ 
    mainActivity.doStuff(); 
} 

mainActivity:

public static void doStuff(){ 
//dosomething. 
} 

startActivity.xml:

android:onClick="callOtherMethod" 

你doStuff方法也必須是靜態的,除非您可以獲得目標方法Activity的實例。

+1

我不同意你的說法,在XML使用的onclick通常是一個壞主意。你們聯繫的答案中給出的理由相當薄弱。你必須知道所有提到的東西,但它工作正常,可以幫助保持你的代碼簡潔。而不是別的什麼。 – pumpkee

+0

我同意它確保代碼簡短。多少? – wtsang02

1

我想過類似 android:onClick =「mainActivity.doSomething」但它不起作用。

這是正常的,Android的在使用該佈局文件中的當前活動查找在XML佈局宣佈onClick方法只(這是沒有意義的反正其他活動的活動看當你調用該方法時可能會被破壞)。

我的問題是,我怎麼能定義對XML的onClick ATTR調用 方法,它位於我mainActivity例如?

你應該解釋一下你想要做什麼。應該避免從另一個Activity訪問Activity的方法,這不是在Android中做事情的正確方法。