通过Intent和Adapter将变量传递给另一个类

时间:2013-03-06 11:59:25

标签: android android-intent adapter

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

我的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 个答案:

答案 0 :(得分:0)

您可以根据需要添加PutExtra,使用不同的键和位置,在另一个类中使用键获取它。

答案 1 :(得分:0)

首先,您需要在下一个活动中纠正此问题

 Bundle b = getIntent().getExtras();
    if( b != null ){
        String s1 =  intent.getStringExtra("TOPIC"); 
    }

答案 2 :(得分:0)

Intent intent = getIntent();

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

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

它不起作用,因为你有通过arraylist .....

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

答案 3 :(得分:0)

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

第一个问题是你在onItemClick中开始另一个活动,此时,你正在使用项目位置来获取当前值。没关系,但是您只获得了一个特定视图的值,该视图正在被点击。     。listView1.getAdapter()的getItem(位置)的ToString();

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

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

例:       Textview t1,t2;       ImageView 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");       

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