如何在Activity Launch之前设置textView.setText

时间:2016-05-05 07:44:07

标签: android android-activity launch

在我的应用中,当选项菜单 - >关于 - >按下,我正在显示DialogActivity的信息。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
TextView  textview  = OptionSelDialog.optionsTextView; //(static assigned and pulled in MainActivity)
       case R.id.action_about:
            textview.setText("This About Msg");
            startActivity(new Intent(this, OptionSelDialog.class));
            break;

此处OptionSelDialog是单独的Activity,尚未从任何地方调用。 我试过了:

  1. startActivity
  2. 致电OptionSelDialog MainActivity.OnCreate
  3. OptionSelDialog construtor中使用textview(我知道这是错误的)
  4. 最后,活动因textView is NULL ;而崩溃 还有一件事,从第二次应用程序启动它可以正常工作。

    请帮助解决。

1 个答案:

答案 0 :(得分:2)

实际上,不推荐您的方式。我们有很多方法可以做到这一点。例如:

  1. 将数据保存到内存中并在开始活动后将其加载到textview

  2. 当您开始新活动时,您应该将捆绑包传递给第二个活动,并从第二个活动中将该值显示给textview。

    Intent optionSelDialogIntent = new Intent(xxx.this,OptionSelDialog.class);
    

    optionSelDialogIntent.putExtra("your key", "your text value"); startActivity(optionSelDialogIntent);

  3. 在你的第二项活动中:

     Bundle bundle = getIntent().getExtras();
        if (bundle != null && bundle.containsKey("your key")) {
            yourData = bundle.getString("your key");
        }
    

    然后使用yourData初始化textview和setText。就是这样。