как получить хэш-таблицу Arraylist для других целей - PullRequest
1 голос
/ 04 января 2012

У меня есть хештлы в списке массивов.

 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 ]

6 голосов
/ 04 января 2012

Создайте класс, который расширяет 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();
2 голосов
/ 04 января 2012
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);  

тип массива

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);

Надеюсь, это поможет вам.

См .: Передача списка объектов между действиями

1 голос
/ 04 января 2012

Преобразуйте ваши Hashtables в Bundles и передайте Bundles, используя intent.putExtra () вот пример

Intent i = новый Intent (это ваш класс.класс);

i.putExtra ( "Информация", информация);

и вы можете получить значения в другом намерении

Bundle extra = getIntent (). GetExtras ();

extra.geStrinf ( "Информация");

0 голосов
/ 04 января 2012

Преобразуйте ваши Hashtables в Bundles и передайте Bundles, используя intent.putExtra ()

...