我正在编写一个读取XML文件并将其显示为ListView的应用程序 因为每一行都有自己的Image和Text我正在使用LayoutInflater,我可以显示文本但不能显示图像!这是我用于ImageAdapter的代码:
public class ImageAdaptertwo extends ArrayAdapter<String> {
private final Context context;
private final ArrayList<String> values;
private final ArrayList<String> values2;
public ImageAdaptertwo(Context context, ArrayList<String> values,ArrayList<String> values2) {
super(context, R.layout.trimester1_listview, values);
this.context = context;
this.values = values;
this.values2 = values2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String s = values.get(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.trimester1_main, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label2);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon2);
textView.setText(values2.get(position));
// Change icon based on name
//String s = values.get(position);
System.out.println(s);
if (s.equals(" havingsuccessful-pregnancyS.png")) {
imageView.setImageResource(R.drawable.n1);
} else if (s.equals("urfoodguideduringpregnancyS.png")) {
imageView.setImageResource(R.drawable.n2);
} else if (s.equals("lovingurpregnantbodyS.png")) {
imageView.setImageResource(R.drawable.n3);
} else if (s.equals("gettinggoodbreastafterS.png")) {
imageView.setImageResource(R.drawable.n4);
} else if (s.equals("FoodGuidePyramidS.png")) {
imageView.setImageResource(R.drawable.n5);
} else if (s.equals("pregnancyS.png")) {
imageView.setImageResource(R.drawable.n6);
} else if (s.equals("nutritionfoS.png")) {
imageView.setImageResource(R.drawable.n7);
} else if (s.equals("Your-Growing-ChildS.png")) {
imageView.setImageResource(R.drawable.n8);
} else if (s.equals("Fatigue-in-first-trimesterS.png")) {
imageView.setImageResource(R.drawable.n9);
} else if (s.equals("T1S.png")) {
imageView.setImageResource(R.drawable.n10);
}
return rowView;
}
}
values和values2是来自XML Parser的ArrayList!实际上没有它们没问题,因为我打印它们的内容并在LogCat中看到它们! 在我的Activit中,我使用它来适应ImageAdapter
setListAdapter(new ImageAdaptertwo(this, imagelink,texts));
结果是带有文本但没有图像的列表视图! 任何人都可以告诉我如何解决这个问题并在ListView上显示XML内容?
通过将语句更改为切换案例来解决问题。现在每行我有特定的号码
答案 0 :(得分:1)
基本上问题在于你的if - else然后。字符串比较没有像您期望的那样发生。确保在JAVA中检查任何涉及equals,equalsignorecase两次的代码。字符串比较不必要地复杂化。而不是if-else,你可以使用开关,让你的生活更轻松一点。 要从在线获取图像,您必须在后台线程上获取图像,然后在主线程上显示。 请参阅此处获取帮助:http://android-developers.blogspot.in/2009/05/painless-threading.html
答案 1 :(得分:0)
通过将语句更改为切换案例来解决问题。现在每行我有特定的图像