关于 http://hi.baidu.com/blogofivan/blog/item/e572728206260ec39123d925.html解决方案, 我已经尝试了,给了ListView设定了固定的height,但是重复数据还是出现,蛋疼了一天,问题还是没有解决。 发高分贴,跪求解决方案!
item.xml布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout android:id="@+id/rlay" android:layout_width="fill_parent" android:layout_height="wrap_content" >
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wv_image"
android:layout_width="88dip"
android:background="@drawable/download"
android:layout_height="88dip">
</ImageView>
<TextView android:layout_toRightOf="@id/wv_image" android:id="@+id/tvlabel" android:layout_marginTop="35dip" android:layout_width="wrap_content" android:gravity="center" android:layout_height="wrap_content" android:text="@string/pre_download" android:textColor="@color/white" android:layout_alignParentRight="true"></TextView>
</RelativeLayout>
</LinearLayout>
main.xml 布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_marginTop="3dip" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/LinearLayout01" android:layout_width="fill_parent"> <ListView android:id="@+id/lv_download" android:layout_height="fill_parent" android:layout_width="fill_parent">
</ListView>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
相关代码
public class ListViewAdapter extends BaseAdapter {
View[] itemViews;
public ListViewAdapter(String []more_urls) {
itemViews = new View[more_urls.length];
int cnt = 0;
for (int i = 0; i < itemViews.length; i++) {
itemViews[cnt] = makeItemView(more_urls[cnt],i);
cnt ++;
}
}
public int getCount() {
return itemViews.length;
}
public View getItem(int position) {
return itemViews[position];
}
public long getItemId(int position) {
return position;
}
private View makeItemView(String url,final int itemIndex) {
LayoutInflater inflater = (LayoutInflater) DownloadView.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 使用View的对象itemView与R.layout.item关联
View itemView = inflater.inflate(R.layout.item_image_download, null);
//itemView.setId(itemIndex);
// 通过findViewById()方法实例R.layout.item内各组件
tvload = (TextView) itemView.findViewById(R.id.tvlabel);
imageView = (ImageView) itemView.findViewById(R.id.wv_image);
return itemView;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
return itemViews[position];
return convertView;
} public void onItemClick(AdapterView<?> adv, View v, int position,
long id) {
}
}
=====================================================================================================
求分析,求解决方案
item.xml布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout android:id="@+id/rlay" android:layout_width="fill_parent" android:layout_height="wrap_content" >
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wv_image"
android:layout_width="88dip"
android:background="@drawable/download"
android:layout_height="88dip">
</ImageView>
<TextView android:layout_toRightOf="@id/wv_image" android:id="@+id/tvlabel" android:layout_marginTop="35dip" android:layout_width="wrap_content" android:gravity="center" android:layout_height="wrap_content" android:text="@string/pre_download" android:textColor="@color/white" android:layout_alignParentRight="true"></TextView>
</RelativeLayout>
</LinearLayout>
main.xml 布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_marginTop="3dip" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/LinearLayout01" android:layout_width="fill_parent"> <ListView android:id="@+id/lv_download" android:layout_height="fill_parent" android:layout_width="fill_parent">
</ListView>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
相关代码
public class ListViewAdapter extends BaseAdapter {
View[] itemViews;
public ListViewAdapter(String []more_urls) {
itemViews = new View[more_urls.length];
int cnt = 0;
for (int i = 0; i < itemViews.length; i++) {
itemViews[cnt] = makeItemView(more_urls[cnt],i);
cnt ++;
}
}
public int getCount() {
return itemViews.length;
}
public View getItem(int position) {
return itemViews[position];
}
public long getItemId(int position) {
return position;
}
private View makeItemView(String url,final int itemIndex) {
LayoutInflater inflater = (LayoutInflater) DownloadView.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 使用View的对象itemView与R.layout.item关联
View itemView = inflater.inflate(R.layout.item_image_download, null);
//itemView.setId(itemIndex);
// 通过findViewById()方法实例R.layout.item内各组件
tvload = (TextView) itemView.findViewById(R.id.tvlabel);
imageView = (ImageView) itemView.findViewById(R.id.wv_image);
return itemView;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
return itemViews[position];
return convertView;
} public void onItemClick(AdapterView<?> adv, View v, int position,
long id) {
}
}
=====================================================================================================
求分析,求解决方案
解决方案 »
- 手势拖动图片问题
- android编译遇到的问题
- Looper是Handler和消息队列之间通讯桥梁的问题
- 在listview中动态改变ProgressBar的进度,求大侠解答!
- div的overflow属性在安卓2.3浏览器里面无效,怎么解决?
- 【求助】Android下,判断快捷方式是否创建的方法。
- android双指实现局部放大图片
- 程序安装后如何点亮『移至SD卡』选项
- 关于layout_alignParentStart属性
- Android studio出现了Could not find method estImplementation()
- Android开发中能不能把模拟器和开发环境分别装在不同的机器上??
- android SurfaceView 切换问题
不会是item显示一个image和一个textview吧,如果是建议用adapter,simpleAdaper
View v = convertView;
if (convertView == null) {
v = itemViews[position];
}
v.setText("XXXX");
return v;
}
去 看 去 看
http://blog.csdn.net/redoffice/article/details/6666185
任何生成view的动作都应该放在getView 当中,直接在构造函数中生成所有的view是一种极其错误而且效率非常低的方式请认真了解adapter生成view的原理,以及api Demo中给出的adapter 范例。
LayoutInflater inflater = (LayoutInflater) DownloadView.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 使用View的对象itemView与R.layout.item关联
View itemView = inflater.inflate(R.layout.item_image_download, null);
//itemView.setId(itemIndex);
// 通过findViewById()方法实例R.layout.item内各组件
tvload = (TextView) itemView.findViewById(R.id.tvlabel);
imageView = (ImageView) itemView.findViewById(R.id.wv_image);
return itemView;
}这个中的代码去掉。然后在getView中写相关代码。试试吧