0
我已經創建了按鈕單擊活動的動態按鈕。當我在活動中的按鈕上創建多個按鈕時,onclick可用於最近的按鈕,因爲我爲每個按鈕分配了id。我怎麼能識別除最近的按鈕之外按下哪個動態按鈕。 這裏是我想造成這樣的我的代碼如何找到其動態按鈕被點擊的Android
public void dynamicButton()
{
// int x=0;
preferences = PreferenceManager.getDefaultSharedPreferences(TimeStudy.this);
value = preferences.getInt("value", 0);
//myButton = new Button(this);
// if (value > x)
if (i <= value) {
myButton= new Button(this);
myButton.setId(value);
BtnId.add(value);
myButton.setTag(value);
LinearLayout ll = (LinearLayout) findViewById(R.id.dynamiclayout);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setPadding(10, 300, 10, 10);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
myButton.setLayoutParams(lp);
btnid= myButton.getId();
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (btnid) {
case 1:case 2:case 3:case
Intent intent = new Intent(TimeStudy.this, CollectSample.class);
startActivity(intent);
break;
}
}
});
ll.addView(myButton, lp);
i++;
}
switch (btnid) {
case 1:case 2:case 3:
SharedPreferences average = getSharedPreferences("avg", 0);
String avgbtn = average.getString("btnavg", "");
settings = getSharedPreferences("dynamicbtname", 0);
btnname = settings.getString("btnname", "");
ar.add(btnname);
String styledText = "<font color='#008000'>" + btnname + "</font>" + " " + " " + " "
+ "<small>"
+ avgbtn + "</font>"
+ "<small>";
myButton.setText(Html.fromHtml(styledText));
myButton.setGravity(Gravity.CENTER | Gravity.LEFT);
break;
}
片斷即使在第一個按鈕創建的所有三個按鈕和1個按鈕被點擊任何表演之後。 enter image description here
我得到這個,如果我按下1按鈕後創建2或第三個按鈕數據返回到最近的按鈕。 enter image description here
任何幫助提前appriciated感謝。
你能不能詳細查看變量是如何進行比較。 – bilawal
我使用view.gettag(); 2個按鈕有不同的標籤,但它仍然返回按鈕2上的數字,即使標籤值是當我使用開關設置數字時 – bilawal