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(); } }); } }
效果:


浙公网安备 33010602011771号