-3

我的MainActivity班级有一个如果检查是真的,它会开始一个新的,它将 aActivity的文本设置为TextView我想要的。

MainActivity

 public static int caseA = 1;

 if(caseA) {
     Intent i = new Intent(Timer.this, WorkTimerNotification.class);
     startActivity(i);
 }

然后它转到新的Activity,它应该检查caseA.

WorkTimerNotification

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_work_timer_notification);
    TextView timerMetric = (TextView)findViewById(R.id.tester_texter);
    if(MainActivity.caseA) {
            timerMetric.setText("min");
        }

问题:它不会改变文本。另外,假设我在 mainactivity 中有许多其他 if 语句,例如:

 if(caseB) {}
 if(caseC) {}
 //and so on..

我将如何执行检查?更重要的是,我如何让这个 caseA 检查工作。

4

1 回答 1

1

您需要findViewById()致电onCreate()

private TextView timerMetric;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_work_timer_notification);

    timerMetric = (TextView)findViewById(R.id.tester_texter);

    if(caseA) {
        timerMetric.setText("min");
    }
}

现在你在调用之前调用它setContentView(),在视图层次结构生成之前。因此,您的代码将失败。

于 2015-05-16T15:20:08.350 回答