0

我试图将一堆变量传递给另一个活动,但在接收活动中它只能访问第一个元素。

我的 listView1 包含 3 个元素:2 个 TextViews 和 1 个 ImageView...

public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            Intent intent = new Intent(parent.getContext(),
                    DisplayListEntry.class);

            intent.putExtra("TOPIC",    listView1.getAdapter().getItem(position).toString());

            startActivityForResult(intent,   0);    

接收活动:

    Intent intent = getIntent(); 

    String s1 =  intent.getStringExtra("TOPIC"); 

我想通过 Intent 访问它们......有人可以这么好心告诉我它是如何完成的吗?:/

提前致谢!

4

4 回答 4

0

您可以使用项目的不同键和位置添加任意数量的 PutExtra,并在另一个类中使用键获取它。

于 2013-03-06T12:03:08.930 回答
0

首先,您需要在下一个活动中对此进行更正

 Bundle b = getIntent().getExtras();
    if( b != null ){
        String s1 =  intent.getStringExtra("TOPIC"); 
    }
于 2013-03-06T12:03:32.330 回答
0

好的,您有三个视图并希望将这些数据用于另一个活动。

第一个问题是您正在 onItemClick 内启动另一个活动,此时,您正在使用项目位置来获取当前值。没关系,但是您只能获得一个特定视图的值,该视图正在被单击。listView1.getAdapter().getItem(position).toString();

如果您真的想传递这三个值,我的建议是:

  • 在您的班级上为每个视图创建一个字段

例如:文本视图 t1、t2;图像视图 i1;

并且 onClick 事件您将使用它来放置这样的意图:

onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent(parent.getContext(), DisplayListEntry.class);

        intent.putExtra("key1",t1.getText());
        intent.putExtra("key2",t2.getText());
        intent.putExtra("key3",i2.get***());

        startActivityForResult(intent,   0);   

在您的另一个活动中,您可以访问这些值:

 Intent intent = getIntent(); 
 String s1 =  intent.getStringExtra("key1"); 
 String s2 =  intent.getStringExtra("key2"); 
 ***     =  intent.get****("key3");       

您应该将 *** 更改为要传递的数据类型。

于 2013-03-06T12:49:13.207 回答
0

意图意图 = getIntent();

String s1 =  intent.getStringExtra("TOPIC"); 

在这里你 s1 声明为字符串..

它不会工作,因为有你通过arraylist.....

声明arraylist变量并尝试实现它..

于 2013-03-06T12:05:25.897 回答