效果圖:

使用方法:
1、在布局檔案中加入ListView控制元件:

<?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、新建一個串列項布局listView_item.xml,用于設計ListView條目的樣式

<?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、自定義資料配接器繼承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、添加資料源,并完成資料配接器
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);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/241368.html
標籤:其他
