1.ListView

整体项目结构

 

main_activity.xml写一个ListView

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

<ListView
android:id="@+id/myListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>

 

先写一个XML作为ListView的item容器

<?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">

    <ImageView
        android:id="@+id/myImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/myTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15sp"
        android:textColor="#ff00ff"/>

</LinearLayout>

 

写一个bean作为我们的假数据


package com.example.onelistview;

public class Bean {
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

去写我们的适配器

package com.example.mylistview;

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

import java.util.ArrayList;

public class MyAdapter extends BaseAdapter {

    private ArrayList<Bean> arrayList = new ArrayList<>();
    Context context;

    public MyAdapter(ArrayList<Bean> arrayList, Context context) {
        this.arrayList = arrayList;
        this.context = context;
    }

    @Override
    public int getCount() {
        return arrayList.size();
    }

    @Override
    public Object getItem(int i) {
        return i;
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        
        if (view == null){
            view = LayoutInflater.from(context).inflate(R.layout.my_listitem,viewGroup,false);
        }
        
        //给我们的TextView设置数据
        TextView textView = view.findViewById(R.id.myTextView);
        textView.setText(arrayList.get(i).getName());
        
        //设置图片
        ImageView myImageView = view.findViewById(R.id.myImageView);
        myImageView.setImageResource(R.drawable.ic_baseline_accessible_24);

        return view;
    }
}

 

写主函数

package com.example.mylistview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

        ArrayList<Bean> arrayList = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            arrayList.add(new Bean("邹"+i));
        }

        ListView listView = findViewById(R.id.myListView);
        listView.setAdapter(new MyAdapter(arrayList,this));

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this,arrayList.get(i).getName(),Toast.LENGTH_SHORT).show();
            }
        });

    }
}

效果:

 

 

 

 
posted @ 2021-09-05 15:37  涂妖教  阅读(33)  评论(0)    收藏  举报