アプリの構造は単純で、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 に基づいて新しいリクエストを作成し、要素の詳細データを表示できますか??