android 自定义listview
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ItemAdapter itemAdapter;//自定义的适配器
private List<Item> arr;//列表数组
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
init();//
ItemAdapter itemAdapter = new ItemAdapter(MainActivity.this,R.layout.item,arr);
listView.setAdapter(itemAdapter);
}
private void init(){
arr = new ArrayList<Item>();
Item item1 = new Item("zezeze",R.drawable.ic_launcher_background);
arr.add(item1);
}
}
Item.java
public class Item {
private String text;
private int image;
public Item(String text,int image){
this.text = text;
this.image = image;
}
public String getText(){
return text;
}
public int getImage(){
return image;
}
}
ItemAdapter .java
public class ItemAdapter extends ArrayAdapter<Item> {
private int newId;
public ItemAdapter(Context context,int resourceId,List<Item> arr){
super(context,resourceId,arr);
newId = resourceId;
}
@Override
public View getView(final int position, View converView, ViewGroup parent){
Item item = getItem(position);
View view = LayoutInflater.from(getContext()).inflate(newId,parent,false);
TextView text = view.findViewById(R.id.text);
ImageView image = view.findViewById(R.id.image);
text.setText(item.getText());
image.setImageResource(item.getImage());
return view;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"></ListView>
</android.support.constraint.ConstraintLayout>
item.xml
<?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:gravity="center_vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:gravity="center_vertical"/>
</LinearLayout >