我宣佈這個適配器:Android的 - 如何設置一個字段一個ArrayList的ListView從一個對象,但還跟蹤的項目ID
ArrayAdapter<Problem> adapter;
我也這樣聲明此ArrayList:
ArrayList<Problem> problems = new ArrayList <Problem>();
我問題類只有2個字段:problemId和problemName。
我讓到遠程數據庫的調用和填充數據是這樣的:
for (int i = 0; i < obj.length(); i++)
{
JSONObject o = obj.getJSONObject(i);
problem_title = o.getString("problem_title");
problem_id = o.getString("problem_id");
Problem p = new Problem ();
p.setProblemId(problem_id);
p.setProblemId(problem_title);
problems.add(p);
}
adapter.notifyDataSetChanged();
這樣被顯示在屏幕上的東西是對象的引用,但我想顯示的名稱,當用戶點擊該項目,我也應該能夠檢索該項目的ID在我的聽衆在這裏:
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
// For now just do something simple like display a responsive message
Log.d("MyProblemsActivity" , "A choice was made from the list: " + ((TextView) view).getText());
Log.d("MyProblemsActivity" , "position: " + position);
Log.d("MyProblemsActivity" , "id: " + id);
}
});
幫助非常感謝!!!!
謝謝!
這個問題中的「問題」不容易被破譯。你到底需要什麼幫助?看起來你已經有了一些工作代碼,而你的問題的標題根本沒有任何意義。 – synic 2012-03-12 20:37:11
@synic現在對象引用被顯示在屏幕上。我只需要將問題名稱顯示在屏幕上,但需要保存以供稍後使用的引用ID。這有助於明確問題嗎? – GeekedOut 2012-03-12 20:52:17