【问题标题】:Receive intent with null data between activities在活动之间接收带有空数据的意图
【发布时间】:2012-12-19 08:21:26
【问题描述】:

我有一个活动,它使用如下意图将数据发送到另一个活动:

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();

但是当我运行它时,我在意图中收到一个空数据!问题出在哪里?

【问题讨论】:

    标签: android android-intent android-activity bundle


    【解决方案1】:

    您应该使用您用来放置数据的相同键来检索数据:

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

    如你所用

    saved2.putExtra("DueDateChanged", true); 
    

    注意: 您正在输入一个布尔值而不是一个字符串,以添加一个字符串

    saved2.putExtra("DueDateChanged", "yourString"); 
    

    【讨论】:

      【解决方案2】:
          Intent intent = new Intent(this, MenuActivity.class);
          intent.putExtras("yourBoolName", true);
      

      额外检索意图:

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          Boolean yourBool = getIntent().getExtras().getBoolean("yourBoolName");
      }
      

      【讨论】:

        猜你喜欢
        • 2017-05-16
        • 1970-01-01
        • 2021-04-12
        • 2017-07-03
        • 1970-01-01
        • 2013-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多