我正在制作一个带有自定义列表视图和数据库的简单应用程序,我不得不检查列表视图包含哪个图像。
我想做的例子:
如果我想更新job1,那么我点击job1,它应该打开选中“正在建设中”的对话框。
job2已完成选择等。
我想知道如何检查列表项是否包含“R.drawable.job_done”?
我知道这不是真正的代码,但这就是我想做的事情:
if(listviewItem.contains R.drawable.job_done){
radioButtonJobDoneFromUpdateDialog.setChecked(true);
}else if (listviewItem.contains R.drawable.job_under_construction){
radioButtonJobUnderconstructionFromUpdateDialog.setChecked(true);
}else if (listviewItem.contains R.drawable.job_incoming){
radioButtonJobIncomingFromUpdateDialog.setChecked(true);
}
提前给我一个简单的例子,tnx。
解决!!!
我制作了一个隐藏的textview,我将图标的名称保存为字符串,现在我正在检查这些字符串。无论如何,tnx试图帮助那些人。
自定义列表视图适配器:
public class Business_custom_listView_adapter extends ArrayAdapter<BusinessObjects> {
Context context;
DatabaseHandler handler;
int layoutResourceId;
ArrayList<BusinessObjects> data = new ArrayList<BusinessObjects>();
public Business_custom_listView_adapter(Context context, int layoutResourceId, ArrayList<BusinessObjects> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ImageHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ImageHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.tvJobListItemID);
holder.imgIcon = (ImageView) row.findViewById(R.id.ivJobStatusID);
row.setTag(holder);
} else {
holder = (ImageHolder) row.getTag();
}
BusinessObjects picture = data.get(position);
holder.txtTitle.setText(picture.getNameOfTheJob());
byte[] outImage = picture.getImage();
ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
holder.imgIcon.setImageBitmap(theImage);
return row;
}
static class ImageHolder {
ImageView imgIcon;
TextView txtTitle;
}
}
应用设计:
答案 0 :(得分:0)
请分享一些代码,以便我们回答:)
但一般来说,Recycler View比ListView更好!
如果使用ListView执行此操作,则需要使用自定义适配器并更改getView(int position,View convertView,ViewGroup parent)。但是如果你不发布你的代码,我就无法帮你解决你的具体情况
答案 1 :(得分:0)
以这种方式试试
if (listviewItem.imgIcon.getDrawable() == getResources().getDrawable(R.drawable.job_done)) {
//do work here
} else if (listviewItem.imgIcon.getDrawable() == getResources().getDrawable(R.drawable.job_under_construction)) {
//do work here
} else if (listviewItem.imgIcon.getDrawable() == getResources().getDrawable(R.drawable.job_incoming)) {
//do work here
}