不能将两个值传递给intent

时间:2012-11-29 12:53:58

标签: android android-intent bundle

我想通过使用bundle将两个值传递给intent,但是当我单击intent时该值没有传递。以下是此源代码:

    public static final String ID_EXTRA = "com.example._ID";
    protected static final String ID_LISTID = "com.example._ID";
    String list = null;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            list = getIntent().getStringExtra(main.ID_EXTRA);
            listView = (ListView) findViewById(R.id.productList);
   {
   listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            myid = (int) id;


        }

    });
}

==============================================================================
    Bundle bundle = new Bundle();
    bundle.putString(ID_EXTRA, String.valueOf(myid));
    bundle.putString(ID_LISTID, list);
    editProduct.putExtras(bundle);
    startActivity(editProduct);

2 个答案:

答案 0 :(得分:2)

Bundle建立在HashMap之上,使用相同的密钥存储值将导致您输入的最后一个元素替换为您要插入的项目。使用不同的键:

例如:

 public static final String ID_EXTRA = "com.example._ID2";
 protected static final String ID_LISTID = "com.example._ID1";

答案 1 :(得分:0)

没有提供额外数据,没人能回答这个问题:

  • ID_EXTRA的价值是多少?
  • ID_LISTID的价值是什么。

它们应该不一样!您提供了相同的值。将其更改为“com.example._ID1”和“com.example._ID2”。

  • myid,怀疑这是一个整数。请通过putInt list
  • 添加
  • 什么是清单?你说这是一个字符串,但我真的不相信 那。如果是,请将您的变量重命名为更加理解的内容。不仅适用于您,也适用于将要使用您的代码的人。