-3

MainActivityのクラスには、そのチェックが何かが真である場合、それは aActivityのテキストをTextView私が望むものに設定する新しいものを開始します。

MainActivity:

 public static int caseA = 1;

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

それから new に行き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 に答える