已经两个textview在点击for contexmenu选项时会出现onCreateContextMenu(),如果用户点击了copy,那么它必须复制所选的textview文本或以字符串形式存储 我得到了上下文菜单,但我需要存储单击用户上下文菜单的文本?
public class Chapter1 extends Activity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.chapter1);
_1=(TextView)findViewById(R.id.textView2);
_2=(TextView)findViewById(R.id.textView3);
registerForContextMenu(_1);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
MenuInflater mi=getMenuInflater();
mi.inflate(R.menu.main, menu);
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
}
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id._c:
String stringYouExtracted=_1.getText().toString();
Toast.makeText(getApplicationContext(),
"Text Copied Sucess "+stringYouExtracted,
Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getApplicationContext(),
"Under Progress", Toast.LENGTH_LONG).show();
break;
}
return super.onContextItemSelected(item);
}
}
我总是得到相同的吐司,即文本复制成功textview2
答案 0 :(得分:0)
您需要在获得点击事件时保存所点击项目的文本
定义了一个新的成员变量mText,在onCreateContextMenu
里面,把它放在:
mText = v.getText().toString()
然后在onContextItemSelected
内,把它放在:
Toast.makeText(getApplicationContext(), "Text Copied Sucess "+ mText, Toast.LENGTH_LONG).show();
祝你好好完成其余的功课!