工程连接
https://download.csdn.net/download/qq_45688164/51978106
主页面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="ExtraText">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="好友列表"
android:textSize="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:spinnerMode="dialog" />
</LinearLayout>
</LinearLayout>
《item list》
<?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="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_icon"
android:layout_width="80dp"
android:layout_height="80dp"
android:gravity="center" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:textColor="#000000"
android:textSize="30dp" />
<TextView
android:id="@+id/neirong"
android:textColor="#969696"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp"
android:textSize="17sp"/>
</LinearLayout>
</LinearLayout>
java
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;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<Friend> friends;
private int[] iconArray =
{R.mipmap.hope, R.mipmap.meili, R.mipmap.brightness,
R.mipmap.banye, R.mipmap.bianfeng, R.mipmap.feitian, R.mipmap.guilaixi};
private String[] starArray = {"hope", "美丽心情", "brightness", "半叶", "彼岸风", "飞天", "归来兮"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData(); //初始化数据
ListView listview = findViewById(R.id.listview);
//创建 MyAdapter 对象
FriendAdapter adapter = new FriendAdapter(this, R.layout.item_list, friends);
//设置 Adsapter
listview.setAdapter(adapter);
// 设置点击事件
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long l) {
Toast.makeText(MainActivity.this,
"好友" + starArray[position], Toast.LENGTH_LONG).show();
}
});
}
//初始化数据
private void initData() {
friends = new ArrayList<Friend>();
for (int i = 0; i < starArray.length; i++) {
friends.add(new Friend(iconArray[i], starArray[i], "这个家伙很懒"));
}
}
}
自定义适配器
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
/**
* @author 东方秀
*/
public class FriendAdapter extends BaseAdapter {
private int resource; //列表项布局
private List<Friend> data; //数据集合
private Context context;
//构造方法:上下文对象,布局文件,数据
public FriendAdapter(Context context, int resource, List<Friend> data) {
this.resource = resource;
this.data = data;
this.context = context;
}
//获取列表项的个数 个数
@Override
public int getCount() {
return data.size();
}
//获取 position 位置上的列表项对象 列表项条目
@Override
public Object getItem(int position) {
return data.get(position);
}
//获取 position 位置上的列表项的 id 第几个列表项
@Override
public long getItemId(int position) {
return position;
}
//获取 position 位置上的列表项视图
//自动调取getView方法,每条数据调用一次,把position位置上的数据放到列表项中
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//获取 position 位置上的数据对象
Friend planet = data.get(position);
//加载 item_list.xml 布局文件
View view = View.inflate(context,resource,null);
ImageView iv_icon = view.findViewById(R.id.iv_icon);
TextView tv_name = view.findViewById(R.id.tv_name);
TextView tv_neirog=view.findViewById(R.id.neirong);
//将数据设置到控件上
iv_icon.setImageResource(planet.getImage());
tv_name.setText(planet.getName());
tv_neirog.setText(planet.getNeirong());
return view;
}
}
对象类
public class Friend {
//成员变量
private int image; //好友图片
private String name; //好友名字
private String neirong;//好友介绍
public Friend(int image, String name, String neirong) {
this.image = image;
this.name = name;
this.neirong = neirong;
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNeirong() {
return neirong;
}
public void setNeirong(String neirong) {
this.neirong = neirong;
}
}