【发布时间】:2014-08-17 08:17:07
【问题描述】:
我需要创建一个ListView 并仅为所选行显示更详细的布局,以便向客户显示更多信息。我尝试的如下:
newsListView.setAdapter(new NewsListAdapter(this, news));
newsListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//Here I tried to change layout of this row only
view = inflater.inflate(R.layout.listitem_news_selected, null);
TextView info = (TextView) view.findViewById(R.id.info);
NewsData news = (NewsData) parent.getItemAtPosition(position);
info.setText(news.getInfo());
}
});
这里是NewsListAdapter:
public class NewsListAdapter extends BaseAdapter {
List<NewsData> items;
Activity context;
/* private view holder class */
private class ViewHolder {
TextView title;
ImageView image;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listitem_news, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.image = (ImageView) convertView.findViewById(R.id.imageView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
NewsData news = items.get(position);
holder.title.setText(news.getTitle());
new DownloadImageTask(holder.image).execute(news.getImgUrl());
return convertView;
}
}
In this question,有人问过类似的问题,但对我没有帮助。我猜我需要对适配器做一些事情,但我被困在这里。任何想法将不胜感激。
【问题讨论】:
-
为每个列表视图项设置一个自定义的 StateListDrawable 并覆盖其 onStateChange 方法
标签: android listview android-listview adapter