how to setImageResource in listview?

和自甴很熟 提交于 2020-01-06 16:18:20

问题


i store image name in sqlite, i get names with a query and i need to set image resource. i try this :

ImageView img_categlist = (ImageView) findViewById(R.id.img_categlist);
int imageid = getResources().getIdentifier(Image[position], "drawable", getApplicationContext().getPackageName());

img_categlist.setImageResource(imageid);    

int save = db.sh_categtest("charterdb", "test");
Image = new String [save];

for (int i = 0; i <save; i++) {
    Image[i]= db.nam_nametest("charterdb", "test", i, 15);
}

but it is not working, how should i do it? (images are in drawable and i just store names in sqlite)

Full code:

public class Barayetest extends ListActivity {

private database db;
private String[] Name;
private String[] Price;
private String[] Image;

@Override   
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_barayetest);
db = new database(this);

refresher();
setListAdapter(new AA());

}

class AA extends ArrayAdapter<String>{

public AA() {
super(Barayetest.this, R.layout.categ_item, Name);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater in = getLayoutInflater();
View row = in.inflate(R.layout.categ_item, parent, false);

TextView txt_cat = (TextView) row.findViewById(R.id.txt_cat);
txt_cat.setText(Name [position]);

TextView txt_numb = (TextView) row.findViewById(R.id.txt_numb);
txt_numb.setText(String.valueOf(position+1));

TextView txt_price = (TextView) row.findViewById(R.id.txt_price);
txt_price.setText(Price [position]);
int imageid = getResources().getIdentifier(Image[position], "drawable", getApplicationContext().getPackageName());

ImageView img_categlist = (ImageView) findViewById(R.id.img_categlist);
img_categlist.setImageResource(imageid);        

return (row);
}
}
private void refresher(){
db.open();
int save = db.sh_categtest("charterdb", "test");
Name = new String [save];
Price = new String [save];
Image = new String [save];

for (int i = 0; i <save; i++) {

Name[i]= db.nam_nametest("charterdb", "test", i, 2);
Price[i]= db.nam_nametest("charterdb", "test", i, 7);
Image[i]= db.nam_nametest("charterdb", "test", i, 15);
}


db.close();
}
    }

回答1:


Update: After your updated code, you have to get ImageView from View row. So use like,

ImageView img_categlist = (ImageView) row.findViewById(R.id.img_categlist);
img_categlist.setImageResource(imageid);   


来源:https://stackoverflow.com/questions/29173211/how-to-setimageresource-in-listview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!