android - PutExtra 在猎犬端不起作用

标签 android

我想将 Intent 从第一个 Activity 发送到另一个 Activity 。

第一个 Activity 向第二个 Activity 发送一个 Intent 以创建一个新的 AlertDialog,从用户那里接收一个数字并将该数字发送回第一个 Activity ,这就是 putExtra 数据失败的地方。

第一个activity的代码:GuessItActivity.java

                    Intent intent = new Intent(GuessItActivity.this,
                        AlertDialogMessage.class);
                intent.addFlags(Intent.FILL_IN_DATA);
                intent.addFlags(Intent.FILL_IN_CATEGORIES);
                intent.addFlags(Intent.FILL_IN_ACTION);
                
                intent.putExtra("data1", 15);
                startActivityForResult(
                        intent,
                        getResources().getInteger(
                                R.integer.ALERT_DIALOG_MESSAGE));

在检索器端,例如 AlertDialogMessage.java 上的第二个 Activity 端

                            public void onClick(DialogInterface dialog,
                                int which) {
                            // "OK" button pressed
                            int userGuess = Integer.parseInt(input
                                    .getText().toString());
                            Intent intent = getIntent();
                            if (intent == null)
                                return;

                            int data1 = intent.getIntExtra("data1", -1);
                            if (data1 != 15 )
                                return; // data1 ==15 
                            
                            intent.putExtra("data2", 25);           
                            if (getParent() == null) {
                                setResult(Activity.RESULT_OK, intent);
                            } else {
                                getParent().setResult(Activity.RESULT_OK,
                                        intent);
                            }
                            finish();

第一个 Activity 端:回到GuessItActivity.java

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == getResources().getInteger(
            R.integer.ALERT_DIALOG_MESSAGE)) {
        if (resultCode == RESULT_OK) {
            Intent intent = getIntent();
            if (intent==null)
                return; 


              Bundle extra = getIntent().getExtras();
            if (extra != null) {
                int _data1 = extra.getInt("data1");
                int _data2 = extra.getInt("data2");
            }
               // extra  == null , what am I doing wrong  ? 

            int data1 = intent.getIntExtra("data1",-1);
            int data2 = intent.getIntExtra("data2",-1);
            if ((data1==-1)&&(data1==-1))
                return; 

问题是,我收到的 data1 和 data2 等于 -1。

我想接收我在第二个 Activity 中输入的数据。例如 data1 == 15 和 data2 == 25

我做错了什么?

最佳答案

尝试

Bundle extra=data.getExtras();

代替

Bundle extra=getIntent().getExtras();

关于android - PutExtra 在猎犬端不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10138756/

相关文章:

java - NFC 权限错误

java - GraphView库x和y轴

android - SQLite 和 MySQL 可以在一个 Android 应用程序中工作吗?

java - 为什么公共(public)类在 android 开发人员滑动 View 示例中的同一个文件中?

javascript - Android/IOS 上的实时 Javascript 合成器。 HTML5 音频标签不会接受注入(inject)的数据

android - 如何在android studio Gradle中添加从项目到模块的libs依赖

android - 带有文本而不是图像的 FloatingActionButton

java - 我无法将数据插入我的数据库

android - executeMyFriendsRequestAsync 遇到问题

java - 如何将拍摄的图像放在特定的 ImageView 中