设置到意图活动后,bundle 为空

Posted

技术标签:

【中文标题】设置到意图活动后,bundle 为空【英文标题】:bundle is null after setting into the intent activity 【发布时间】:2021-12-25 02:03:41 【问题描述】:

我正在设置在活动之间遍历的意图。但是这里的包在设置意图后为空。这是我的代码,

NewCourseActivity.java
 AdapterView.OnItemSelectedListener mItemSelectedListener = new AdapterView.OnItemSelectedListener() 

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
            CourseSelected=parent.getSelectedItem().toString();
            switch (view.getId()) 
                case R.id.BESPINNER:
                    String becourse=parent.getSelectedItem().toString();
                    Intent intent = new Intent(NewCourseActivity.this,BEViewCourseActivity.class);
                    Bundle data1 = new Bundle();
                    data1.putString("course",becourse);
                    intent.putExtras(data1);
                    startActivity(intent);
                    break;  

BEViewCourseActivity.java:
 CourseSelected=findViewById(R.id.courseSelected);


        Intent intent = getIntent();
        Bundle data = intent.getExtras();
        if(data != null)
            String selectedcourse = data.getString("course");
            CourseSelected.setText(selectedcourse);
        
        else
            CourseSelected.setText("Failed");
        

【问题讨论】:

【参考方案1】:

将数据从一个活动传递到另一个活动:

// updated becourse String
String becourse = parent.getItemAtPosition(position).toString();
Intent intent = new Intent(NewCourseActivity.this , BEViewCourseActivity.class);
intent.putExtra ( "course" , becourse  );
startActivity ( intent );

然后接收传递过来的数据:

Bundle extras = getIntent().getExtras();
if (extras != null) 
    String stringValue = extras.getString("course"); // string must be the same as the passed one

【讨论】:

但是没有数据通过bundle,并且接收活动中的bundle extras带有空值 在开始活动之前添加一个日志来检查字符串的值:Log.i( "MyActivity" , becourse ); 究竟什么是“becourse”?它应该返回什么? 它返回spinner中的数据,然后遍历接收活动

以上是关于设置到意图活动后,bundle 为空的主要内容,如果未能解决你的问题,请参考以下文章

类型活动中的方法 startactivity(intent,bundle) 不适用于参数 (int,intent)

Android Widget Bundle getString 显示为空

Android Studio教程05-Parcelables和Bundles.md

将数据从活动发送到片段android工作室[重复]

将Bundle对象保存到共享首选项中[重复]

在活动处于前台时接收明确的意图