(文字列を比較できるように編集) TextView が 1 つとボタンが 2 つあり、1 つのボタンは「月」、もう 1 つのボタンは「週」です。月、週など、押されたボタンに応じてテキストビューを変更しようとしています。初めてアクティビティを開始すると、期待どおりに「月」が表示されます。
「週」ボタンを押すと、「月」ボタンをクリックしても週ビューが表示されても、TextViewに常に「週」が表示されます。
デバッグでは、「Month」、「Month」=「true」を押すと、onCreate の値は「True」のままですが、最初の If ステートメントでは
if (extras != null){ // <-------here is still true
month = extras.getString(month); // <-------here is false
}
その値は突然「false」になります
ボタンにテキストを設定できることは知っていますが、後でグラフを追加してデータを表示するので、onCreate を実行したいと思います。ビューを作成するたびに、どのビューが選択されているかを (文字列を比較して) チェックし、メッセージとグラフを表示します。月ビューを表示するために初めて実行します。
私は何を間違っていますか?
コードはこちら
package com.isma.report;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class report1 extends Activity{
TextView viewtime;
String month = "true";
Intent starterIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.report);
starterIntent = getIntent();
Bundle extras = getIntent().getExtras();
if (extras != null) {
month = extras.getString("month");
}
// Set the text
viewtime = (TextView) findViewById(R.id.StudentReportText);
if (month.equals("true")){
viewtime.setText("Monthly View");
}
if{month.equals("false")){
viewtime.setText("Weekly View");
}
//Month View Button
Button bMonth = (Button) findViewById(R.id.monthincome);
bMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
starterIntent.putExtra(month, "true");
startActivity(starterIntent);
finish();
}
});
//Week View Button
Button bWeek = (Button) findViewById(R.id.weekincome);
bWeek.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
starterIntent.putExtra(month, "false");
startActivity(starterIntent);
finish();
}
});
}
}