2010-08-12 21 views
0

我有一個非常緩慢的一天,所以裸露在我身邊。基本上我有一個android各種選擇的上下文菜單,並根據用戶選擇我想開始一個意圖。意圖爲所有按鈕啓動相同的活動,但根據選擇的不同,它將包含不同的字符串變量。我正在爲我的點擊偵聽器使用一種開關,案例方法,但當我嘗試消除代碼重複時,仍然遇到'重複局部變量'問題!如果任何人都可以提供更好的僞代碼!使用多個按鈕的單一意圖!

乾杯

回答

1

很難說沒有看到一些代碼,但「重複的局部變量」和「開關罩」起來讓我覺得你是在使用相同的名稱作爲案例之一聲明一個變量從另一個案件變量。

同一交換機的不同情況中

代碼都是在同一個範圍內,除非你周圍的代碼的情況下,內帶支架,像這樣:

switch(VALUE) { 
case A: { 
    String string = ""; 
} 
case B: { 
    //Same variable name, possible since it's in a different scope now. 
    String string = ""; 
} 
} 

因此,無論使用括號,或者乾脆請確保您在案例中使用不同的變量名稱。

1

您可以使用intent.putExtra(String name,String value)並將其推送到其他活動。

僞代碼:

Button1.value = 「X」;
Button2.value =「Y」;

onClickListner(View v){
Intent intent = new Intent();
intent.putExtra(「ButtonValue」, v.value());
//額外的代碼在這兒... ...
}

希望這是你要找的人..

維奈

0

我喜歡用設置/ getTag(對象),因爲你可以把任何你喜歡的類型放入它(只要你仔細地把它弄出來):

button1.setTag(MyClass.STATIC_INT_1); 
button2.setTag(MyClass.STATIC_INT_2); 
button1.setOnClickListener(Click); 
button2.setOnClickListener(Click); 


private OnClickListener Click(View v) { 
Intent intent = new Intent() ; 
intent.putExtra("Value", Integer.parseInt(v.getTag().toString())) ; 
··· 
}