如何将选中的项目传递给另一项活动?

时间:2010-12-09 13:16:37

标签: android

我收到了已检查联系人的列表。但是,我需要将这些选定的联系人传递给另一个活动并显示在编辑Text.Please help.Thanks

2 个答案:

答案 0 :(得分:1)

你有几个解决方案......

  1. 您可以在Java类中使用静态字段
  2. 您可以通过Intent.putExtra
  3. 将数据打包到Intents中

    如果您尝试在自己的活动之间发送数据,则选项(1)可能是最简单,最快捷的。如果您希望将数据发送到其他应用程序的活动,则必须执行选项(2)。

    我建议你首先阅读这些Q& A,但有些人会更深入地介绍这个问题......

    Passing data of a non-primitive type between activities in android

    Passing data between activities in Android

    Switching activities/passing data between activities

答案 1 :(得分:0)

您必须使用Intent才能这样做。

示例,将数据传递给已在运行的活动:

public void sendToActivity(Object data){
    Intent i = new Intent("SEND_DATA");
    i.putExtra("data", this.catchReports.get(data));
    sendBroadcast(i);
}

然后,您必须在接收活动中设置一个侦听器以捕获广播信号:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    // Sets the View of the Activity
    setContentView(R.layout.activity_layout);   
    registerReceiver(new CustomReceiver(this), new IntentFilter("SEND_DATA")); 
} 

使用以下customaceiver:

public class CustomReceiver extends BroadcastReceiver {

    private MyActivity activity;

    public ReceiverEvent(MyActivity activity) {
        this.activity = activity;
    }

    public void onReceive(Context context, Intent i) {
        this.activity.doWhateverWithYourData(i.getParcelableExtra("newEvent"));
    }
}

请注意,如果要传输整数,浮点数和字符串以外的对象,则必须使它们Parcelable