
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,类似的问题被问到,但它没有帮助我.我猜我需要用Adapter做一些事情,但我被困在这里.任何想法将不胜感激.
解决方法 你正在做什么甚至不会改变ListVIEw项目的视图,你正在膨胀一个未知的视图.解:
在适配器中创建一个方法来设置所选项的位置:
public voID selectedItem(int position){ this.position = position; //position must be a global variable} 当位置等于点击项位置时,在getVIEw中为视图充气
@OverrIDepublic VIEw getVIEw(int position,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()); if(this.position == position) { vIEw2 = mInflater.inflate(R.layout.Listitem_news_selected,null); TextVIEw info = (TextVIEw) vIEw2.findVIEwByID(R.ID.info); info.setText(news.getInfo()); return vIEw2; } return convertVIEw;} 在你的onItemClick中使用它
Newslistadapter adapter = new Newslistadapter(this,news);newsListVIEw.setAdapter(adapter );newsListVIEw.setonItemClickListener(new OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent,long ID) { adapter.selectedItem(position); adapter.notifyDataSetChange(); }}); 始终有适配器的引用/对象,因此您可以在单击它时刷新ListVIEw.
总结以上是内存溢出为你收集整理的更改Android中所选列表项的布局全部内容,希望文章能够帮你解决更改Android中所选列表项的布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)