如何调用活动重新开始?

时间:2015-06-20 14:15:52

标签: android android-intent

我正在创建一个练习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);
}

我在哪里弄错了?逻辑中是否有错误?我没有收到运行时错误。一切正常。如果你能帮助我,我会很高兴的。提前谢谢。

1 个答案:

答案 0 :(得分:1)

而不是这段代码

http://sabre.io/ns/sync

使用

Intent intent = getIntent(); finish(); startActivity(intent);