java - 使用Tabactivity Result代码获取0,返回Intent数据为null

标签 java android tabs

我在 Activity 中有一个主要 Activity ,我给了一个按钮,如果我们单击该按钮,它会显示包含联系人和组 Activity 的选项卡 Activity 。如果我们选择使用联系人或组的复选框,它必须自动进入编辑框并显示我们选择的内容。

但是现在,如果我选择联系人或组中的任何内容,它不会显示在编辑文本中。

这是我的主要 Activity

get.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent i = new Intent(AndroidAlarmSMS.this,
                        AndroidTabLayoutActivity.class);
                startActivityForResult(i, ResultCode);
            }

        });

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == ResultCode) {

            if (resultCode == RESULT_OK) {
                sendlist = data.getStringArrayListExtra("name");
                if (sendlist != null) {
                    for (int i = 0; i < sendlist.size(); i++) {
                        edittextSmsNumber.append(sendlist.get(i).toString());
                        edittextSmsNumber.append(";");

                    }
                }


                    }



        }
                //Toast.makeText(AndroidAlarmSMS.this,"wowwww",1000).show();
                if (resultCode == RESULT_CANCELED) {

                }
            }

这里我还显示了我的选项卡 Activity

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabmain);

        TabHost tabHost = getTabHost();

        // Tab for Photos
        TabSpec photospec = tabHost.newTabSpec("Contacts");
        photospec.setIndicator("Contacts", getResources().getDrawable(R.drawable.contact));
       Intent photosIntent = new Intent(this, ContactActivity.class);


        photospec.setContent(photosIntent);


        // Tab for Videos
        TabSpec videospec = tabHost.newTabSpec("Groups");
        videospec.setIndicator("Groups", getResources().getDrawable(R.drawable.group));
        Intent videosIntent = new Intent(this, GroupActivity.class);

        videospec.setContent(videosIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(photospec); // Adding photos tab
         // Adding songs tab 
        tabHost.addTab(videospec); // Adding videos tab

    }

    public  void updateMethod(ArrayList<String> phno0)
    {
        Toast.makeText(this,"hey u came to update method", 1000).show();
        Intent returnIntent = new Intent();
        returnIntent.putStringArrayListExtra("name",phno0);
        setResult(RESULT_OK,returnIntent);     
        super.finish();
    }  
}

这些是包含选项卡的子 Activity

contactactivity.java

send.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v) {

                StringBuilder checkedcontacts= new StringBuilder();
                System.out.println(".............."+mAdapter.mCheckStates.size());
                for(int i = 0; i < name1.size(); i++)

                {
                    if(mAdapter.mCheckStates.get(i)==true)
                    {
                        phno0.add(phno1.get(i).toString()) ;
                        checkedcontacts.append(name1.get(i).toString());
                        checkedcontacts.append("\n");

                    }
                    else
                    {
                        System.out.println("..Not Checked......"+name1.get(i).toString());
                    }


                }
                Toast.makeText(ContactActivity.this, checkedcontacts,1000).show();
                AndroidTabLayoutActivity a= new AndroidTabLayoutActivity();
                a.updateMethod(phno0);

            }       
        });

在小组 Activity 中也这样。

选择联系人或组的复选框时,它不会进入编辑框,这就是问题

最佳答案

How to return a result (startActivityForResult) from a TabHost Activity?

检查此链接后,我将为您的问题提供解决方案。

Toast.makeText(ContactActivity.this, checkedcontacts,1000).show();
    Intent returnIntent = new Intent();
    returnIntent.putStringArrayListExtra("name",phno0);
    if (getParent() == null) {
        setResult(Activity.RESULT_OK, returnIntent);
    } else {
        getParent().setResult(Activity.RESULT_OK, returnIntent);
    }
    finish();

有关更多信息,请查看上面的链接

关于java - 使用Tabactivity Result代码获取0,返回Intent数据为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20632680/

相关文章:

Java 对象引用机制

java - 返回相反枚举的优雅方式

java - Jersey 客户端 - 设置 IP 地址

javascript - Android Webview 多点触控 touchstart 事件不适用于超过 2 个手指

android - 如何将图像转换为灰度?

batch-file - 命令行中的 Firefox 私有(private)选项卡

html - C 到 HTML 中的自动制表符

java - Fragment Android 背后的暗淡和模糊背景

android - 每隔一段时间向android中的videoview播放器添加标记

python - 使用 Tkinter Text 使用 Tab 键转到下一个字段(而不是缩进)