0

私はSQlite Databaseを使用しています.2つのテーブルを作成してそれらにデータを入力し(正常に動作しています)、そこのデータを使用してリストビューに表示します。初めてリスト アダプタがリスト ビューにデータを入力するときは、newDATA 変数をゼロとして表示します。いくつかのデータ。しかし、私が戻ってその活動をさらに開始すると、newDATAには正しい値があります。. 以下のコードを使用します

public ArrayList<HashMap<String, Object>> GetDataFirst(String id) {
        ArrayList<HashMap<String, Object>> firstvariable = new ArrayList<HashMap<String, Object>>();



        Cursor c =sdb.rawQuery("Select * from table_name ",new String[]{id} );
        String[] colums = c.getColumnNames();



        while (c.moveToNext()) {
            HashMap<String, Object> record = new HashMap<String, Object>();
            for (int i = 0; i < colums.length; i++) {
                record.put(colums[i], c.getString(c.getColumnIndex(colums[i])));

            }

            {
              ArrayList<HashMap<String, String>> now_add = GetmainData(id, record.get("vget").toString());
              record.put("NewDATA", now_add);

              hint.add(record);


            } 
            }       

        }
          c.close();
        return firstvariable ;
    }



public ArrayList<HashMap<String, String>> GetCluesDataVerical(String id,String vhid) {
        ArrayList<HashMap<String, String>> hint = new ArrayList<HashMap<String, String>>();

        Cursor c = sdb.rawQuery("SELECT * FROM table_data", new String[] {id,vhid});
        String[] colums = c.getColumnNames();
        while (c.moveToNext()) {
            HashMap<String, String> record_add = new HashMap<String, String>();
            for (int i = 0; i < colums.length; i++) {
                record_add.put(colums[i], c.getString(c.getColumnIndex(colums[i])));
            }


            hint.add(record_add);
        }
          c.close();
        return hint;  
    }

リストアダプターでは、これらを次のように呼び出します。

 recordData=context.crossDatabaseAdapter.GetDataFirst(value);

 wArray = (ArrayList<HashMap<String, String>>) recordData.get(position).get("NewDATA");

私はたくさん試しましたが、まだ解決策はありません。

4

1 に答える 1

0

アプリケーションを停止するときはインスタンス状態を使用してリストアダプターのコンテンツを保存する必要があり、アプリケーションが起動するときは、インスタンス状態のおかげでデータを取得できるかどうかを確認する必要があります。そうでない場合は、データベースからデータをロードします。これで問題が解決する可能性があります

于 2013-05-01T15:49:23.263 に答える