-1

次のようにインテントを使用して別のアクティビティにデータを送信するアクティビティがあります。

public void periodDateSharedPreferences(int calculatedPeriodYear, int calculatedPeriodMonth, int calculatedPeriodDay)
{
  SharedPreferences periodDatePreferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = periodDatePreferences.edit();
  editor.putInt("periodChosenDay",calculatedPeriodDay);
  editor.putInt("periodChosenMonth",calculatedPeriodMonth);
  editor.putInt("periodChosenYear",calculatedPeriodYear);
  editor.commit();
    Toast.makeText(birthDate.this,"The date was saved", Toast.LENGTH_LONG).show();
    Intent saved2 = new Intent(birthDate.this,MenuActivity.class);
      saved2.putExtra("DueDateChanged", true);
startActivity(saved2);
    finish();
 }

他のアクティビティは、このインテントを次のように受け取ります。

static String DueDateChanged = "com.app.antiwal7amel.DueDateChanged";

Intent intent = getIntent();
        String message = intent.getStringExtra(MenuActivity.DueDateChanged);
        tv.setText(message);
        super.onResume();

しかし、実行すると、インテントでnullデータを受け取ります! 問題はどこだ ?

4

2 に答える 2

3

データを配置するために使用したのと同じキーを使用してデータを取得する必要があります。

String message = intent.getStringExtra("DueDateChanged");

使用したように

saved2.putExtra("DueDateChanged", true); 

注: 文字列を追加するには、文字列ではなくブール値を入力します

saved2.putExtra("DueDateChanged", "yourString"); 
于 2012-12-19T08:23:50.360 に答える
1
    Intent intent = new Intent(this, MenuActivity.class);
    intent.putExtras("yourBoolName", true);

インテント エクストラを取得します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    Boolean yourBool = getIntent().getExtras().getBoolean("yourBoolName");
}
于 2012-12-19T08:33:42.240 に答える