我在 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/