gpt4 book ai didi

android - 自定义 ListView 不会替换 View

转载 作者:行者123 更新时间:2023-11-30 02:19:34 25 4
gpt4 key购买 nike

我正在使用自定义 AdapterlistView 中显示图像和文本。单击按钮时,我想用下一张图像替换图像。但这只是在列表末尾添加而不是替换。下面是我的代码 fragment :

从sqlite中获取图片的方法

    public void BlockData() {       
dataBase = dbHelper.getReadableDatabase();
Cursor mCursor = dataBase.rawQuery("SELECT * FROM "+ dbHelper.TABLE_NAME + " WHERE " + dbHelper.KEY_HNUM+ "=" + id, null);

if (mCursor.moveToFirst()) {
do {
category_Id.add(mCursor.getString(mCursor.getColumnIndex(dbHelper.KEY_HNUMM)));
} while (mCursor.moveToNext());
lv.setAdapter(new BlockAdapter(getApplicationContext(),category_Id,prgmImages));

stopManagingCursor(mCursor);
mCursor.close();
}
}

在自定义 View 中设置

public View getView(final int pos, View child, final ViewGroup parent) {
final Holder mHolder;
LayoutInflater layoutInflater;
if (child == null) {
layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
child = layoutInflater.inflate(R.layout.secondlist, null);
mHolder = new Holder();
mHolder.txt_id = (TextView) child.findViewById(R.id.testingg);
mHolder.tx_img = (ImageView) child.findViewById(R.id.sac_img);
mHolder.butnxt = (Button) child.findViewById(R.id.button2);
mHolder.butpre = (Button) child.findViewById(R.id.button1);
child.setTag(mHolder);
} else {
mHolder = (Holder) child.getTag();
}

mHolder.txt_id.setText(category_Id.get(pos));

if (pos == 0) {
imgs = getResources().obtainTypedArray(R.array.sac_imgs);

mHolder.tx_img.setImageResource(imgs.getResourceId(id - 1, -1));
imgs.recycle();
}else{
imgs = getResources().obtainTypedArray(R.array.sac_imgs);
mHolder.tx_img.setImageResource(imgs.getResourceId(pos - 1, -1));
imgs.recycle();
}
mHolder.butnxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
id++;
BlockData();
}
});
return child;
}
protected ViewGroup findViewById(int txtViewPop) {
return null;
}
public class Holder {
TextView txt_id;
Button butnxt;
Button butpre;
TextView txt_fDate;
ImageView tx_img;
}

每次单击按钮时我应该怎么做才能替换 View ?我希望有人能指导我正确的方向。提前致谢

最佳答案

What should i do to replace the view every time a button is clicked?

不要在 ListView 中添加新的 Adapter 对象:

1.BlockAdapter中创建一个清除所有数据的方法:

public void refeshAdapterData(List category_Id,<Data_Type> prgmImages )
{
category_Id.clear();
// clear prgmImages
// add data to adapter
category_Id.addAll(category_Id);
// Add prgmImages
notifyDataSetChanged();
}

2.BlockData() 方法调用 refeshAdapterData :

refeshAdapterData(category_Id,prgmImages);
stopManagingCursor(mCursor);
mCursor.close();

关于android - 自定义 ListView 不会替换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com