我需要启动一个包含带图像的文本列表的应用程序.我需要在带有图像的列表中显示这些文本消息.我通过使用线性布局显示这些消息与图像,如下所示.
for(int i=0;i<messages.size();i++){ FrameLayout f1= new FrameLayout(this); linearLayout l1 = new linearLayout(this); linearLayout l2 = new linearLayout(this); im =new ImageVIEw(this); TextVIEw tv =new TextVIEw(this); tv.setText(messages.get(i).getmessage()); im.setimageResource(R.drawable.person); l1.addVIEw(tv); l2.addVIEw(im); f1.addVIEw(l1); f1.addVIEw(l2); ((linearLayout)findVIEwByID(R.ID.linearlayoutMessage)).addVIEw(f1);}
一段时间后,我需要刷新图像视图中的图像.我试图通过设置每个图像视图的ID来做到这一点,但我只得到最后一个图像视图ID.
我知道有ListvIEw,但它是否适合我的要求?我不知道怎么办我的任务.谁能帮帮我吗?
@R_404_6120@:
我做了类似的事情..我刚刚做了一个TextVIEws列表(每行两个TextVIEw),我需要更新列表中的一个TextVIEw ..我做的是一个垂直的linearLayout,并添加包含我的TextVIEws的Horizontal linearLayouts ..然后我有一个字符串列表来查找我需要修改的索引,然后使用linearLayout.getChildAt(int)搜索它并更新值…
码:
我有一个字符串列表和一个计数器,说明这个字符串有多少次…
private ArrayList<String> strList;private ArrayList<Integer> counterList;
当String是新的时:
strList.add(new_string);TextVIEw str = new TextVIEw(getApplicationContext());str.setText(stemp);str.setLayoutParams(strsTextVIEw.getLayoutParams());TextVIEw strcounter = new TextVIEw(getApplicationContext());strcounter.setLayoutParams(counterTextVIEw.getLayoutParams());linearLayout.LayoutParams layoutParams = new linearLayout.LayoutParams(linearLayout.LayoutParams.FILL_PARENT, linearLayout.LayoutParams.WRAP_CONTENT,1);linearLayout ll = new linearLayout(this);ll.setLayoutParams(new LayoutParams(linearLayout.LayoutParams.WRAP_CONTENT,linearLayout.LayoutParams.WRAP_CONTENT));ll.setorIEntation(linearLayout.HORIZONTAL);ll.addVIEw(str, layoutParams);layoutParams = new linearLayout.LayoutParams(linearLayout.LayoutParams.FILL_PARENT, linearLayout.LayoutParams.WRAP_CONTENT,3);counterList.add(1);strcounter.setText("1");ll.addVIEw(strcounter, layoutParams);mlinearLayout.addVIEw(ll,new LayoutParams(linearLayout.LayoutParams.FILL_PARENT,linearLayout.LayoutParams.WRAP_CONTENT));
我检查String是否不是新的(已经在strList中)if(strList.indexOf(stemp)!= 0)然后执行如下 *** 作:
Integer intaux =counterList.get(index);intaux++;counterList.set(index, intaux);linearLayout aux = (linearLayout)mlinearLayout.getChildAt(index);TextVIEw aux2 = (TextVIEw)aux.getChildAt(1);aux2.setText(Integer.toString(intaux));
我希望我没有错过任何东西,这对你有用..如果你什么都不懂,告诉我,我试着解释/纠正它.
PS:我认为@abhijeet的Adapter解决方案是我实现的更优雅的版本,但我还没有这样做.
总结以上是内存溢出为你收集整理的android – 需要帮助以图像作为列表显示消息文本全部内容,希望文章能够帮你解决android – 需要帮助以图像作为列表显示消息文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)