我正在创建一个练习Android编程的测验。我能够运行Android程序,它工作正常。但现在,我添加了ContextMenu
。如果我单击任何项目,则应使用新值重新启动活动。但事实并非如此。
TextView Qsn;
Button TopicTitle;
Button Ybtn;
Button Nbtn;
String check;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.history);
Qsn = (TextView) findViewById(R.id.Question);
TopicTitle = (Button)findViewById(R.id.Topictxt);
Ybtn = (Button)findViewById(R.id.Yesbtn);
Nbtn = (Button)findViewById(R.id.Nobtn);
Intent intent = getIntent();
Bundle bundle =intent.getExtras();
check=bundle.getString("Bundlekey") ;
TopicTitle.setText(check);
Toast.makeText(getApplicationContext(), check, Toast.LENGTH_SHORT) .show();
registerForContextMenu(TopicTitle);
if (check.matches("History")) {
....
}
}
代码检查选择了哪个主题,直到此处它才能正常工作。但是现在我添加了ContextMenu
,所以如果用户想要更改主题,他可以长按按钮并选择主题并更改新主题以获得新问题。
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.topic_selection_in_question, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
String Value_from_item ;
Value_from_item = (String) item.getTitle();
check = Value_from_item;
Intent intent = getIntent(); finish(); startActivity(intent);
return super.onContextItemSelected(item);
}
我在哪里弄错了?逻辑中是否有错误?我没有收到运行时错误。一切正常。如果你能帮助我,我会很高兴的。提前谢谢。
答案 0 :(得分:1)
而不是这段代码
http://sabre.io/ns/sync
使用
Intent intent = getIntent(); finish(); startActivity(intent);