我想那個按鈕1,2,3響應一個longclick,用戶會提示輸入文本的按鈕。的onCreate的 我在裏面寫道:setonlongclicklistener一次爲幾個按鈕
Button botonEditable;
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
context = MainActivity.this;
Resources r = getResources();
String pName = getPackageName();
for (int i=1;i<4;i++){
botonEditable = (Button) findViewById(r.getIdentifier("button" + i, "id", pName));
botonEditable.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
final AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setMessage("Nueva Categoria:");
final EditText input = new EditText(context);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton ) {
// Do something with value!
String newCateg = input.getText().toString();
botonEditable.setText(newCateg);
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
return true;
}
});
}
}
當這個測試中,3個按鈕相應地響應顯示一個警告消息,但是當我輸入文字,然後點擊確定,文本僅在BUTTON3改變,無論哪個按鈕被longclicked :( 什麼這是錯誤的,如何用簡單的方法解決這個問題?
超出範圍:你爲什麼要存儲的強引用該活動的背景?我認爲這是不好的做法,刪除屬性**上下文上下文**並在需要時使用** this **。 – Leeeeeeelo 2013-03-11 07:42:45