如何让Hashtable Arraylist成为另一个意图?

时间:2012-01-04 11:00:12

标签: java android arraylist hashtable

我在数组列表中有哈希值。

 List<Hashtable<String, String>> info = new ArrayList<Hashtable<String, String>>();


 Hashtable<String, String> hm = new Hashtable<String, String>();
// Put elements to the map

hm.put("Read_Flag", s1);
hm.put("sms_received_id", s2);
hm.put("Sender_Id", s3);
hm.put("Sender_Name", s4);
hm.put("Patient_Name", s5);
hm.put("Received_Date", s6);
hm.put("Received_Text", s7);
hm.put("Received_Text_Full", s8);
hm.put("AttachmentFlag", s9);

// Get a set of the entries
Set<?> set = hm.entrySet();
// Get an iterator
Iterator<?> it = set.iterator();
// Display elements
while(it.hasNext()) {
Map.Entry me = (Map.Entry)it.next();
 // System.out.print(me.getKey() + ": ");
 // System.out.println(me.getValue());
}
//System.out.println(hm);

info.add(hm);

这里的信息包含我的哈希表。我怎样才能将这个“信息”对象变成其他类/意图?

谢谢......

4 个答案:

答案 0 :(得分:6)

Serializable

创建一个使用getter setter扩展List<Hashtable<String, String>> list的类

<强> Custom.java

public class Custom implements Serializable{

    private static final long serialVersionUID = 4466821913603037341L;
    private List<Hashtable<String, String>> list;


    public List<Hashtable<String, String>> getList() {
        return list;
    }

    public void setList(List<Hashtable<String, String>> list) {
        this.list = list;
    }
}

传递给下一个活动。

List<Hashtable<String, String>> list = new ArrayList<Hashtable<String,String>>();

Custom custom = new Custom();
custom.setList(list);
intent.putExtra("myobj", custom);

在下一个活动中检索

Intent intent = getIntent();
Custom custom = (Custom) intent.getSerializableExtra("myobj");
List<Hashtable<String, String>> list = custom.getList();

答案 1 :(得分:2)

List<Hashtable<String, String>> info = new ArrayList<Hashtable<String, String>>(); 
String[] selItemArray = new String[info .size()];
            //copy your List of Hashtable Strings into the Array ,and then pass it in your intent
            // ....
            Intent intent = new Intent(InfoClass.this, AnotherClass.class);
            intent.putExtra("info_array", selItemArray);
            startActivityForResult(intent, 0);  

类型的arraylist

putIntegerArrayListExtra(String name, ArrayList<Integer> value)

        putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)

        putStringArrayListExtra(String name, ArrayList<String> value)

        putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)

    Then you can read from you next activity by replacing put with get with key string as argument,eg

myIntent.getStringArrayListExtra("key");

数组:

Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);



In order to read:

Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);

希望这会对你有所帮助。

参考:Passing a list of objects between Activities

答案 2 :(得分:1)

将您的Hashtables转换为Bundles,并使用intent.putExtra()传递Bundles 这是一个例子

Intent i = new Intent(this,yourclass.class);

i.putExtra( “信息”,信息);

你可以在其他意图中获取值

Bundle extra = getIntent()。getExtras();

extra.geStrinf( “信息”);

答案 3 :(得分:0)

将您的Hashtables转换为Bundles,并使用intent.putExtra()传递Bundles