我生成了ListView
,如下所示
我没有足够的代表发布图片,您必须解密我的网址:image
上面图片中的 blue 行使用HashMap
填充:
private void showListView(JSONArray rows, JSONArray totals){
final ListView list = (ListView) findViewById(R.id.historylist);
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
String[] titles = new String[]{"recordID","date","description","num1","num2"};
SimpleAdapter mSchedule = null;
try{
for(int i=0;i<rows.length();i++){
map = new HashMap<String, String>();
for(int n=0;n<allRows.getJSONArray(i).length();n++){
map.put(titles[n], allRows.getJSONArray(i).getString(n));
}
mylist.add(map);
}
mSchedule = new SimpleAdapter(
History.this,
mylist,
R.layout.history_row,
titles,
new int[] {R.id.textView0, R.id.textView1, R.id.textView2, R.id.textView3, R.id.textView4}
);
list.setAdapter(mSchedule);
}catch(Exception e){
Log.e("Creating ListView", e.toString());
}
}
<LinearLayout >
<LinearLayout >
<LinearLayout >
<TextView (recordID) />
<TextView (date) />
<TextView (num1) />
<TextView (num2) />
</LinearLayout>
<TextView (description) />
</LinearLayout>
<LinearLayout (When this one is clicked) >
<ImageView />
</LinearLayout>
单击上图中的绿色按钮时,Id喜欢获取蓝色行信息。
(日期,描述,num1,num2)
此外,如果您认为有更好的方式来填充ListView
,请告知我们。
答案 0 :(得分:0)
您需要通过扩展BaseAdapter
来实现自己的自定义适配器。在getView
方法中,您需要绑定到Button
的点击事件。我建议使用OnClickListener
并使用AdapterView#getPositionForView
的一个实例。一旦您拥有了点击按钮的视图位置,您就可以获得数据。可以通过Adapter#getItem
或直接从您的数据源。