0

XML ファイルを読み取り、それを ListView として表示するアプリケーションを作成しています。これは、各行に独自の画像とテキストがあるためです。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 パーサーから取得した ArrayList です。私はそれらの内容を印刷してLogCatで見るので、実際には問題ありません! 私のActivitでは、これをImageAdapterの適応に使用します

setListAdapter(new ImageAdaptertwo(this, imagelink,texts));

結果は、テキストはあるが画像がないリストビューです! これを修正してListViewにXMLコンテンツを表示する方法を誰か教えてもらえますか?

if ステートメントを Switch Case に変更することで問題を解決しました。今、各行に特定の番号があります

4

2 に答える 2

1

基本的には、if - else then の問題です。期待どおりに文字列比較が行われていません。Java で equals,equalsignorecase を含むコードを 2 回確認してください。文字列の比較は不必要に複雑です。また、if-else の代わりに switch を使用すると、作業が少し楽になります。オンラインから画像を取得するには、バックグラウンド スレッドで画像を取得してからメイン スレッドに表示する必要があります。ヘルプについては、これを参照してください: http://android-developers.blogspot.in/2009/05/painless-threading.html

類似の質問: URL 画像 (ビットマップ) を表示できません

于 2012-10-23T15:28:23.837 に答える
0

if ステートメントを Switch Case に変更することで問題を解決しました。今、各行に特定の画像があります

于 2012-10-23T14:52:55.960 に答える