我有一个简单的应用程序结构,它只是下载一些 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 连接到这个的表。我只有列表中表的名称属性。那么,如何从 json 文件中为每个元素指定它的 id,以便我可以根据元素的 id 发出新请求并显示元素的详细数据?