在我的项目中,我需要创建Listview。我创建了text.xml和imageview的row.xml以显示在列表项中。我在strings.xml文件中提到了这些列表项名称。但是我怎么能提到strings.xml文件中的图像。我怎么能这样做。 请帮我解决这个问题。如何在Android中为每个listitem放置不同的图像?
回答
拍摄图像与resourceIds数组,并设置ImageView的背景,你都将在textviews价值得到imageIds的阵列图像。您不需要将图像或任何东西放入strings.xml。试试这个link
在你的适配器中,你可以明确地设置图像到每个item的ImageView。你可以使用if-else if-else来设置,取决于位置,如果你有几个项目要显示每一次。您可以设置一个数组并为大量项目设置相应的图像。
通过简单地得到使用下面的代码..
Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);//0 is index of your icons array
<array name="icons">
<item>@drawable/icon1</item>
<item>@drawable/icon2</item>
<item>@drawable/icon3</item>
</array>
您也可以使用link。在这里可以看到类型化数组的例子。
请确保图像lenth和string_array长度应该是平等的,因为我没有把故障情况。
public class TestActivity extends Activity implements OnItemClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list=(ListView) findViewById(R.id.listView1);
Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
String[] str=res.getStringArray(R.array.string_array);
list.setAdapter(new Adapter(this,icons,str));
list.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3)
{
Toast.makeText(TestActivity.this,"You are clicked at:"+pos, Toast.LENGTH_SHORT).show();
}
class Adapter extends BaseAdapter
{
private Context context;
private LayoutInflater inflater;
TypedArray icons;
String[] str;
public Adapter(Context mContext, TypedArray icons,String[] str)
{
this.context= mContext;
this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.icons=icons;
this.str=str;
}
@Override
public int getCount()
{
return icons.length();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int pos, View convertView, ViewGroup arg2) {
final MainListHolder mHolder;
View v = convertView;
if (convertView == null)
{
mHolder = new MainListHolder();
v = inflater.inflate(R.layout.inflate_layout, null);
mHolder.mTextview=(TextView) v.findViewById(R.id.textView1);
mHolder.imageView=(ImageView) v.findViewById(R.id.imageView1);
v.setTag(mHolder);
}
else
{
mHolder = (MainListHolder) v.getTag();
}
mHolder.mTextview.setText(str[pos]);
Drawable drawable = icons.getDrawable(pos);//0 is index of your icons array
mHolder.imageView.setImageDrawable(drawable);//Your Drawables array
return v;
}
class MainListHolder
{
private ImageView imageView;
private TextView mTextview;
}
}
}
Resources res = getResources(); TypedArray图标= res.obtainTypedArray(R.array.app1); Drawable drawable = icons.getDrawable(0);我给这样在我的java文件,但它没有检测到阵列...笏做plz帮助我 – Madhuri
我检查一下这样......这对我的作品通过设置简单的图像.. ImageView的IM =(ImageView的) findViewById(R.id.imageView1); im.setImageDrawable(drawable); –
嗨对不起,我创造了价值的文件夹images.xml和我已经定义了array..But现在我在arrays.xml定义和它没有显示出任何错误 – Madhuri
- 1. 如何在tableview中为每个单元格放置图像?
- 2. 如何为每个引脚设置不同的图像? Xamarin iOS
- 3. 如何在AlertDialog中放置图像? Android
- 4. 在Android中如何将图像设置为不同活动的图像视图?
- 5. 如何设置setTag()方法为每个的listItem ListView中
- 6. 如何在桌子视图的每个部分放置图像?
- 7. 在android中的另一个图像视图中放置图像
- 8. 如何让每个ListItem去一个不同的活动
- 9. 如何在div中间放置不同尺寸的图像
- 10. 如何设置不同图像的每个单元格的图像视图iOS.Xamarin
- 11. 如何把每个页面的不同背景图像放在rails中?
- 12. 为每个选定的listitem
- 13. 设置在Android中使用ListAdapter创建ListItem的背景图像
- 14. 如何在Android的LISTVIEW中为每个原始图像添加不同的图像?
- 15. 如何在ListItem旁边放置按钮
- 16. monodroid如何在图像上放置图像并放置图像
- 17. 如何通过onclick将图像放置在android中的另一个图像上?
- 18. 如何在Android中的edittext中为每个字符设置不同的颜色?
- 19. 如何在Android中使用位置设置这两个不同的图像?
- 20. 设置不同的时间间隔为每个图像
- 21. 如何为每个页面添加不同的页眉图像?
- 22. 如何在reportlab中放置和放置多个图像Python
- 23. 如何设置图像帧同时为多个图像在wxPython
- 24. 如何在Tomcat中为每个webapp设置不同的代理?
- 25. 如何在图像上放置图像?
- 26. 我如何让每个listitem中的图像都有自己的处理程序?
- 27. 如何为每个标记设置不同的图标?
- 28. 如何在Android中的ListView中放置图像和文本
- 29. 在画廊如何给每个图像在Android的不同背景
- 30. Android中的每个listview项目的不同图像
添加整数阵列与图像资源ID .. –
请你可以举个例子吗? – Madhuri