大家好,谢谢你的时间。
我正在尝试使用自定义行创建列表视图,每行包含一个微调器。 我正在用这样的数据填充行:
ArrayList<HashMap> list = new ArrayList<HashMap>();
HashMap row = new HashMap();
row.put("Land_Links", c.getString(1));
row.put("Land_Rechts", c.getString(2));
row.put("Datum", c.getString(11));
row.put("Tijd", c.getString(10));
list.add(row);
在我将它添加到simpleAdapter然后listview.setAdapter之后。 这一切都很完美。 我无法弄清楚如何为微调器填充和设置onclicklistener。 你能告诉我怎么解决这个问题吗?
编辑:
我创建的每一行都创建了2个新的微调器,我想填充并设置onclick
监听器给两个新的微调器。
我创建了一个数组,其中包含需要在微调器中填充的值。(R.array.score
)
当我尝试通过将微调器添加到上面的示例来填充微调器时,我得到异常微调器不是可以被这个simpleAdapter绑定的视图。
我的目标:为了获得填充文本视图的一个循环,将填充微调器,并为微调器设置onclick
个侦听器。
答案 0 :(得分:-1)
你应该扩展一个Adapter(BaseAdapter,SimpleAdapter ...)并且在getView(名称不是总是这个,但通常适用于所有类型的适配器,如baseAdapter)方法,你可以将onClickListener设置为微调器。 / p>
在这里您可以找到有关ArrayAdapter的信息 http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
这里是BaseAdapter的代码
公共类FrontPageAdapter扩展了BaseAdapter {
private ArrayList<Item> rssItems;
private static LayoutInflater inflater = null;
public FrontPageAdapter(Activity activity, ArrayList<Item> items){
super();
rssItems = items;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount(){
return rssItems.size();
}
public Object getItem(int position){
return rssItems.get(position);
}
public long getItemId(int position){
return getItem(position).hashCode();
}
public View getView(int position, View convertView, ViewGroup parent){
if (convertView == null)
convertView = inflater.inflate(R.layout.frontpage_item, null);
// Get the item
Item ls = (Item)getItem(position);
if (ls == null)
return convertView;
//Set the title
String title = ls.getTitle();
if (title == null || title.equals("")){
((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText("");
}
else{
((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText(title);
}
//Obtenemos el contenido. En caso de ser null obtenemos la descripcion
// String description = ls.getContent();
String subtitle= ls.getDescription();
if (subtitle == null || subtitle.length() == 0){
((TextView)convertView.findViewById(R.id.FrontPageItemText)).setVisibility(View.GONE);
}
else{
((TextView)convertView.findViewById(R.id.FrontPageItemText)).setText(Html.fromHtml(subtitle));
}
// Other views, for example your spinner
return convertView;
}
}