您可以使用 3 个文本视图创建自定义列表视图
现在 custom_list_view 布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:text="@string/name"
android:textSize="20sp"
android:layout_marginTop="19dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/price"
android:layout_toStartOf="@+id/price"
android:layout_marginRight="30dp"
android:layout_marginEnd="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/price"
android:text="Price"
android:textSize="20sp"
android:layout_alignBaseline="@+id/name"
android:layout_alignBottom="@+id/name"
android:layout_centerHorizontal="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/stock"
android:text="Stock"
android:textSize="20sp"
android:layout_alignBaseline="@+id/price"
android:layout_alignBottom="@+id/price"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="81dp"
android:layout_marginEnd="81dp"/>
</RelativeLayout>
在布局中创建列表视图,我在 mainactivity 布局中创建
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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="com.pro.salman.customlistview.MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/list_item"/>
</RelativeLayout>
自定义列表视图类
public class CustomListView extends BaseAdapter {
private ArrayList<HashMap<String,String>> list;
private LayoutInflater mLayoutInflater;
private Context mContext;
public CustomListView(ArrayList<HashMap<String,String>> list,Context c) {
this.list = list;
this.mContext = c;
mLayoutInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mLayoutInflater.inflate(R.layout.custom_list_view,parent,false);
Holder h = new Holder();
// set id's
h.name = (TextView)(view.findViewById(R.id.name));
h.price = (TextView)(view.findViewById(R.id.price));
h.stock = (TextView)(view.findViewById(R.id.stock));
HashMap<String,String> hashMap = new HashMap<>();
hashMap = list.get(position);
h.name.setText(hashMap.get("nameKey"));
h.price.setText(hashMap.get("priceKey"));
h.stock.setText(hashMap.get("stockKey"));
return view;
}
private class Holder
{
TextView name;
TextView price;
TextView stock;
}
}
现在在 mainactivity 类中
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private ArrayList<HashMap<String,String>> mArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mArrayList = new ArrayList<HashMap<String, String>>();
for(int i =0;i<20;i++)
{
HashMap<String,String> mHashMap = new HashMap<>();
mHashMap.put("nameKey","name "+String.valueOf(i));
mHashMap.put("priceKey","price "+String.valueOf(i));
mHashMap.put("stockKey","stock "+String.valueOf(i));
mArrayList.add(mHashMap);
}
mListView = (ListView)(findViewById(R.id.list_item));
CustomListView customListView = new CustomListView(mArrayList,this);
mListView.setAdapter(customListView);
}
}
结果