0

アプリの構造は単純で、mysql データをダウンロードしてリスト ビューに表示するだけです。コード スニペットは、私が何をしているかを示しています。

public class MyActivity extends Activity implements AdapterView.OnItemClickListener {
    private static final String TAG = "centrActivity";

    ListView listView;
    ArrayList<String> randomCentr;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        parseJson();

        ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, randomTorgCentr);
        listView = (ListView) findViewById(R.id.list);
        listView.setAdapter(adapter);
        listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
        listView.setOnItemClickListener(this);
    }

    private ArrayList<String> parseJson() {
        randomCentr = new ArrayList<String>();

        JSONArray centr = null;

        //url
        String url = "";

        JSONParser jsonParser = new JSONParser();

        JSONObject jsonObject = jsonParser.getJSONFromUrl(url);
        Log.i(TAG, jsonObject.toString());
        try {
            torgCentr = jsonObject.getJSONArray("callback");
            Log.i(TAG, torgCentr.toString());
            for (int i=0; i<torgCentr.length(); i++) {
                JSONObject o = torgCentr.getJSONObject(i);
                String id = o.getString("id");
                String name = o.getString("name");
                randomCentr.add(i, name);
                Log.i(TAG, randomTorgCentr.get(i));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return randomTorgCentr;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Log.i(TAG, randomCentr.get(position));
    }
}

すべてが表示されていますが、問題があります。IDでこれに接続されているテーブルがあります。リストにはテーブルの name 属性しかありません。では、要素ごとに json ファイルの id を指定する方法を教えてください。そうすれば、要素の id に基づいて新しいリクエストを作成し、要素の詳細データを表示できますか??

4

2 に答える 2

3

ArrayList使用する代わりにHashMap。HashMap では、キーと値のペアを格納できます。したがって、あなたの場合、IDを保存でき、それに応じてデータになります

于 2013-05-22T02:09:19.737 に答える
1

BaseAdapterデータのモデルを作成し、それにマッピングされたモデルのコレクションを拡張および作成することをお勧めします。別のオプションは、単純なものを作成しMap、インデックスをキーとして、ID を値として持つことです。ただし、最初のオプションを使用することをお勧めします。

于 2013-05-22T02:10:43.870 に答える