2012-11-29 64 views
0

我想通过使用bundle将两个值传递给intent,但是当我单击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); 
+1

什么是'list'包含? – user370305

+0

list = getIntent()。getStringExtra(main.ID_EXTRA); 列表价值,我从主要活动得到的价值.. – johnk

回答

2

Bundle是在HashMap建成,使用相同的密钥,以便存储值将使你把我跟你插入的项目替换最后一个元素。使用不同的密钥:

例如:

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

thx家伙....我解决了我的问题.....真的很感谢指导... – johnk

0

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

  • 什么是ID_EXTRA的价值。
  • ID_LISTID的价值是什么。

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

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