Simple use of Android development ListView (vertical scrolling list item view)

Effect picture:

Instructions:

1. Add the ListView control to the layout file:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

2. Create a new list item layout listView_item.xml for designing the style of ListView items

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/carrot"
        android:layout_gravity="center_vertical"/>

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="胡萝卜"
        android:layout_marginLeft="10dp"/>


</LinearLayout>

3. The custom data adapter inherits BaseAdapter


import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapater extends BaseAdapter {
    private int[] icons = {R.drawable.carrot, R.drawable.chilli, R.drawable.mushroom, R.drawable.potato, R.drawable.tomato};
    private String[] names = {"胡萝卜","辣椒","香菇","土豆","西红柿"};

    private Context context;
    public MyAdapater(Context context){
        this.context = context;
    }
    //获取列表的个数
    @Override
    public int getCount() {
        return names.length;
    }

    //获取列表项代表的对象
    @Override
    public Object getItem(int position) {
        return null;
    }

    //获取列表项的ID
    @Override
    public long getItemId(int position) {
        return 0;
    }

    //获取列表项的视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = LayoutInflater.from(context).inflate(R.layout.listview_item,null);
        //通过视图获取对应的控件
        ImageView ivIcon = convertView.findViewById(R.id.ivIcon);
        TextView tvName = convertView.findViewById(R.id.tvName);
        //设置控件数据
        ivIcon.setImageResource(icons[position]);
        tvName.setText(names[position]);
        return convertView;
    }
}

4. Add a data source and complete the data adapter

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {
    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.listView);

        //创建适配器对象
        MyAdapater adapater = new MyAdapater(this);
        //设置适配器
        listView.setAdapter(adapater);

    }
}

 

Guess you like

Origin blog.csdn.net/weixin_44893902/article/details/111772898