在我的项目中,我显示了联系人屏幕,当我点击任何联系人时,它应该返回我的虚拟屏幕,我需要显示所选的联系人。
现在问题是当我从我的项目联系人列表中点击并选择了联系人时,它总是进入我的虚拟项目屏幕,但数据始终为空。 没有得到为什么它来为null。在我展示联系人屏幕的项目中,我们遵循了很多路径。
1 HomeActivity-> TabActivity-> HomeTabFragment-> BuddyFragment(For 显示联系人屏幕)
在Buddy片段中,我编写了以下代码:
Intent intent = new Intent();
intent.putExtra("chaton_buddy_number", buddy.getNo());
intent.putExtra("chaton_buddy_name", buddy.getName());
getActivity().setResult(Activity.RESULT_OK, intent);
getActivity().finish();
return true;
并在dummyApplication中编写了以下代码。
public class MainActivity extends Activity {
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.textView1);
Button button =(Button)findViewById(R.id.button1);
button.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra("mChatONBuddies", true);
//Launching HomeActivity of my project because that one is the first activity.
//intent.setComponent(new ComponentName("com.sec.myproject", "com.sec.chaton.HomeActivity"));
startActivityForResult(intent, 0);
}
});
}
Intent(数据)总是出现在我的虚拟项目屏幕上。
我尝试了一些事情,但没有帮助我。
getParent().getAcitivity().setResult(Activity_ResultOK, intent)
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
使用的地方。它也无法正常工作高度赞赏任何其他建议。
答案 0 :(得分:0)
我在做这样的回调时很喜欢界面
如果您希望您的片段将数据传回其包含的活动,请考虑使用接口来处理和传递数据。
Step1
在片段中声明以下界面
public interface iContactHelper {
public void onSelectContact(String contactNumber,String contactName);
}
第二步
在片段中声明以下内容。
iContactHelper icontactHelper;
@Override
public void onAttach(Activity a) {
super.onAttach(a);
icontactHelper = (icontactHelper) a;
}
步骤3
当您需要向容器活动发送联系信息时,请致电以下。
iContactHelper.onSelectContact(buddy.getNo(),buddy.getName());
步骤4
最后让您的容器活动实现iContactHelper接口
@Override
public void onSelectContact(String contactNumber,String contactName) {
Log.d("LOG","Contact Name " + contactName);
Log.d("LOG","Contact Number " + contactNumber);
}