0

register_information次のような名前のクラスがあります

// getting name
public String get_name()
{
    return this.name;
}
// setting name
public void set_name(String name)
{
    this.name=name;
}

このように登録されているすべての名前とパスワードを取得するためにいくつかのコードを使用しMainActivityました。

List<register_information> all_reg_info_lists = db.get_all_info(); 

            List<HashMap<String, String>> list_of_reg_info = new ArrayList<HashMap<String, String>>();

              for (register_information reg_info : all_reg_info_lists)
              {                 
                  HashMap<String, String> hm = new HashMap<String, String>();
                   String name = reg_info.get_name();
                    String password=reg_info.get_password() ;

                      hm.put("key_name",name);
                      hm.put("key_password",password);

                      list_of_reg_info.add(hm);
                   }

ここで、これらすべての名前とパスワードを別のウィンドウに渡して、意図的にリストビューとして表示したいと考えています。私はこのような意図を使用しました

Intent intObj = new Intent(MainActivity.this,showData_in_textView_class.class);         
            intObj.putExtra("data", list_of_reg_info);
            startActivity(intObj);

私の中でshowData_in_textView_class私はこのような意図を受け取りました

public class showData_in_textView_class extends Activity{

   ArrayAdapter adapter;
   List<register_information> reg_info_lists; 

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview_xml_page);


        Intent intename = getIntent();
        reg_info_lists= (List)intename.getSerializableExtra("data");

} 

}

しかし、うまくいきませんでした。どうやってやるの??

4

3 に答える 3

1

Intent を使用してシリアライズ可能な変数を渡すことができます。シリアル化できないListの代わりに、単純にArrayListを使用します。

于 2013-07-19T09:36:38.890 に答える
0

直接電話してもいいと思います

reg_info_lists=db.get_all_info();

値を渡す代わりに、他のアクティビティで。すぐに思いつく対処法です。

データをチェックして何が入っているかを確認するためにログを追加しましたintename.getSerializableExtra("data");か?

于 2013-07-19T11:00:39.213 に答える
0

まず第一に、あなたはインテント a を入れており、それを次のList<HashMap<String, String>>ように読み返していますList<register_information>

私は通常、そのような目的で Gson を使用します。json のシリアライゼーション/デシリアライゼーションには Google ライブラリです。使い方は非常に簡単です。あなたの場合、インテント作成のコードは次のようになります

Intent intObj = new Intent(MainActivity.this,showData_in_textView_class.class);         
intObj.putExtra("data", new Gson().toJson(list_of_reg_info);
startActivity(intObj);

データを取り戻すため

String json=getIntent.getStringExtra("data");
List<HashMap<String, String>> yourData=new Gson().fromJson("", new TypeToken<List<HashMap<String, String>>>() {
                        }.getType());

ここでは、Gson について詳しく知ることができます。信頼してください。非常に強力です !!

于 2013-07-19T10:28:09.720 に答える