列表视图项重复的Android? [英] list view item repeated in android?
本文介绍了列表视图项重复的Android?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用下面的code,列出从阵列几个项目,同时滚动列表视图中的项目是在阵列我不`吨知道我犯了什么样的错误相同的数据退出追加更多。
任何人都指出,在那里我所犯的错误。
私有静态字符串array_spinner_subcategories [];
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
的setContentView(R.layout.sub_categories);
setSubCat();
ListView控件 - 资料下载=(ListView控件)findViewById(R.id.sub_catlist);
sub_categories.setAdapter(新EfficientAdapter(本));
sub_categories.setAdapter(适配器);
sub_categories.setOnItemClickListener(subcatlistener);
CR = getContentResolver();
}
公众的String [] setSubCat(){
recordDB =新Viddatabase(本);
DB = recordDB.getWritableDatabase();
array_spinner_subcategories = recordDB.subcategoriesList(DB);
recordDB.close();
返回array_spinner_subcategories;
}
私人OnItemClickListener subcatlistener =新OnItemClickListener(){
公共无效onItemClick(适配器视图父,视图V,INT位置,
长ID){
System.gc()的;
Toast.makeText(SubCategories.this,array_spinner_subcategories [位置]
Toast.LENGTH_LONG).show();
}
};
私有静态类EfficientAdapter扩展了BaseAdapter {
私人LayoutInflater mInflater;
公共EfficientAdapter(上下文的背景下){
mInflater = LayoutInflater.from(上下文);
}
公众诠释getCount将(){
返回array_spinner_subcategories.length;
}
公共对象的getItem(INT位置){
返回的位置;
}
众长getItemId(INT位置){
返回的位置;
}
公共查看getView(INT位置,查看convertView,ViewGroup中父){
System.gc()的;
ViewHolder持有人;
如果(convertView == NULL){
convertView = mInflater.inflate(R.layout.albumlist,NULL);
持有人=新ViewHolder();
holder.subCategories =(TextView中)convertView.findViewById(R.id.albumDetails);
holder.subCategories.setText(array_spinner_subcategories [位置]);
convertView.setTag(保持器);
} 其他 {
支架=(ViewHolder)convertView.getTag();
}
返回convertView;
}
静态类ViewHolder {
TextView的子类别;
}
}
解决方案
移动 holder.subCategories.setText(array_spinner_subcategories [位置]);在
行 getView()
的其他
块下面的方法
i use the following code to list few items from array , while scrolling the list view items is append more with same data exit in array i don`t know what mistake i made.
Anyone pointed out where i made the mistake.
private static String array_spinner_subcategories[];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.sub_categories);
setSubCat();
ListView sub_categories=(ListView)findViewById(R.id.sub_catlist);
sub_categories.setAdapter(new EfficientAdapter(this));
sub_categories.setAdapter(adapter);
sub_categories.setOnItemClickListener(subcatlistener);
cr=getContentResolver();
}
public String[] setSubCat(){
recordDB=new Viddatabase(this);
db=recordDB.getWritableDatabase();
array_spinner_subcategories=recordDB.subcategoriesList(db);
recordDB.close();
return array_spinner_subcategories;
}
private OnItemClickListener subcatlistener = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position,
long id) {
System.gc();
Toast.makeText(SubCategories.this,array_spinner_subcategories[position],
Toast.LENGTH_LONG).show();
}
};
private static class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public EfficientAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return array_spinner_subcategories.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
System.gc();
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.albumlist, null);
holder = new ViewHolder();
holder.subCategories = (TextView) convertView.findViewById(R.id.albumDetails);
holder.subCategories.setText(array_spinner_subcategories[position]);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
TextView subCategories;
}
}
解决方案
Move the holder.subCategories.setText(array_spinner_subcategories[position]);
line in getView()
method below the else
block
这篇关于列表视图项重复的Android?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文