样式自定义ListView

时间:2012-07-22 10:18:58

标签: android android-listview

我通过包含ImageView和TextView并使用LayoutInflater的xml文件创建了类似于listview的东西。

我似乎以非常不正统的方式完成了这项工作,因为我无法弄清楚如何实际设置listview样式(理想情况下我想定义大小,因为其他内容要放在同一个界面上)< / p>

我已尝试在自己中设置LinearLayout样式,并将LinearLayout放在父LinearLayout中,包括名为'list'的所述文件中的ListView,尝试在扩展ListActivity的类中定义setContentView。

我希望能够将自定义列表视图控件包含到LinearLayout中,就像任何其他控件一样,而不是控件是整个UI。

public class ImageActivity extends ArrayAdapter<PlaceStore> {

    private final Context context;
    private final List<PlaceStore> places;

    public ImageActivity(Context context, List<PlaceStore> places) {
        super(context, R.layout.image_text_row, places);
        this.context = context;
        this.places = places;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.image_text_row, parent, false);

        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
        textView.setText(places.get(position).getName());

        return rowView;
    }


public class FavouriteActivity extends ListActivity{


    public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         setContentView(R.layout.favourite);

         FavouriteData data = new FavouriteData(this);

         List<PlaceStore> pS = data.returnFileData();

         setListAdapter(new ImageActivity(this, pS));

    }

R.layout.image_text_row

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp" android:background="@drawable/background_type" >


    <ImageView
        android:id="@+id/logo"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="5dp"
        android:src="@drawable/androidmarker" >
    </ImageView>

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="20sp" >
    </TextView>

    </LinearLayout>

3 个答案:

答案 0 :(得分:2)

这是一个非常好的教程,确切地说是你要找的

Customizing Android ListView Items with Custom ArrayAdapter

上述教程的输出与此类似。

Android Custom Listview

这肯定会帮助你完成工作。

谢谢:)。

答案 1 :(得分:1)

尝试以下教程,它将有助于您的要求

Custom ListViewthis

视频 - youtubeVideo

希望它有所帮助。

答案 2 :(得分:1)

我认为您不需要ListActivity。 我建议你这个教程:

ListView and CacheView