如何在Android中使用contextview修改tablelayout中的按钮
我想知道,在安卓系统中,当我使用contextmenu长时间点击按钮时,如何更改按钮的标签 我知道如何通过长时间单击生成contextmenu,但我不确定如何在onContextItemSelected(MenuItem项)方法中访问单击的按钮view 此外,单击的按钮位于tableLayout中,因此我不确定是否可以使用AdapterContextMenuInfo实例变量访问视图如何在Android中使用contextview修改tablelayout中的按钮,android,button,text,contextmenu,Android,Button,Text,Contextmenu,我想知道,在安卓系统中,当我使用contextmenu长时间点击按钮时,如何更改按钮的标签 我知道如何通过长时间单击生成contextmenu,但我不确定如何在onContextItemSelected(MenuItem项)方法中访问单击的按钮view 此外,单击的按钮位于tableLayout中,因此我不确定是否可以使用AdapterContextMenuInfo实例变量访问视图 @Override public boolean onContextItemSelected(MenuItem i
@Override
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()) {
case R.id.menu_edit:
//change button's text
return true;
case R.id.menu_delete:
return true;
case R.id.menu_cancel:
return true;
}
return super.onContextItemSelected(item);
}
任何关于如何做到这一点的见解都将不胜感激
非常感谢advanced。在调用
onContextItemSelected(…)
之前,android会调用onCreateContextMenu(…)
。如果重写此方法,则可以保存(到局部变量)作为参数传入的视图
(这是单击的视图
)。然后,在onContextItemSelected(…)
中,可以使用保存的视图
对象修改文本
例如:
View lastClickedView;
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
lastClickedView = v;
}
@Override
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()) {
case R.id.menu_edit:
lastClickedView.setText("new button text");
return true;
case R.id.menu_delete:
return true;
case R.id.menu_cancel:
return true;
}
return super.onContextItemSelected(item);
}
您可以使用获取给定id的视图对象,然后调用它
switch(item.getItemId()) {
case R.id.menu_edit:
//change button's text
Button myButton = (Button) findViewById(R.id.menu_edit);
myButton.setText("new text");
return true;
case R.id.menu_delete:
return true;
case R.id.menu_cancel:
return true;
}