繁体   English   中英

在ListView中显示图像和文本

[英]Show an Image and Text in a ListView

我正在开发一个应用程序,其中显示了一个包含30个项目的ListView。 在每一行中,应该有一个文本和一个图像。 我搜索了不同的教程,但是不幸的是,所有这些教程都不适合我。 所以,我想请您简短看一下我的代码,并告诉我那里的问题所在,因为当我启动应用程序时,ListView为空。

    mainActivity.java:

    setContentView(R.layout.auswertung);
    ListView list = (ListView) findViewById(R.id.listView1);
    list.setAdapter(new MyListAdapter(this, fragen));




    MyListAdapter.java

    import java.util.ArrayList;

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;

    public class MyListAdapter extends ArrayAdapter<Frage>{
        private final Context context;
        private ArrayList<Frage> fragen;

        public MyListAdapter(Context context, ArrayList<Frage> f) {
            super(context, R.layout.reihe);
            this.context = context;
            fragen = f;
        }

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

            if(rowView == null)
            {
                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                rowView = inflater.inflate(R.layout.reihe, parent, false);
            }


            TextView textView = (TextView) rowView.findViewById(R.id.textView4);
            ImageView imageView = (ImageView) rowView.findViewById(R.id.img1);
            textView.setText("Frage " + (position+1));

            if (fragen.get(position).getRichtig()==true)
            {
                imageView.setImageResource(R.drawable.richtig);
            }
            else
            {
                imageView.setImageResource(R.drawable.falsch);
            }

            return rowView;
        }
    }





    auswertung.xml
    <?xml version="1.0" encoding="utf-8"?>


    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.96"
        android:background="@drawable/hintergrund"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="35dp"
            android:layout_marginTop="19dp"
            android:text="Auswertung"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000" />


            <ListView
            android:id="@+id/listView1"
            android:layout_width="fill_parent"
            android:layout_height="460dp" 
            android:layout_marginTop="60dp">

            </ListView>

    </RelativeLayout>

    reihe.xml
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:paddingTop="4dip"
     android:paddingBottom="6dip"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal">

     <TextView android:id="@+id/textView4"
         android:layout_width="0dip"
         android:layout_height="wrap_content"
         android:layout_weight="5"
         android:textSize="16dp"
         android:textColor="#000000" />



     <ImageView
         android:id="@+id/img1"
         android:layout_width="25dp"
         android:layout_height="25dp" />

</LinearLayout>

如您所见,我有一个背景图像,并且还会问您,如何使ListView的背景不可见,以便可以在文本和Image后面看到我的背景?

您应该将ArrayAdapter构造传递给Frage数据集,或者至少传递ovveride ArrayAdapter.getCount() ,并让它返回ArrayList<Frage> f的项目数

int getCount() {
 return (f == null) ? 0 : f.size();
}

getCount()的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM