BaseAdapter的运用

发布于:2022-12-26 ⋅ 阅读:(441) ⋅ 点赞:(0)
//在MainActivity中
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        找到ListView的id,并弄好listView适配器(new出类的实体,使其可以在此运用)
        ListView listView = findViewById(R.id.list);
        MyAdapter adapter = new MyAdapter();
        listView.setAdapter(adapter); 

//在MyAdapter中

public class MyAdapter extends BaseAdapter {
//    私有设置数据源
    private int photo[] = {R.drawable.szy,R.drawable.hsr};
    private String name[] = {"水煮鱼","红烧肉"};
    private List<Map<String,Object>> data =new ArrayList<>();
//    通过getData()方法,运用ArrayList集合遍历加载
    private  List<Map<String,Object>> getData(){
        List<Map<String,Object>> list =new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            Map<String,Object> map = new HashMap<>();
            map.put("name",name[i]);
            map.put("photo",photo[i]);
            list.add(map);
        }
        System.out.println(list);
        return  list;
    }
//  将getData()方法值赋予data,再返回data最大字节,getData()方法賦予list集合,获取
    @Override
    public int getCount() {
        data = getData();
        return data.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) {
        view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.myadapter,viewGroup,false);
//找到id,替换数据
        ImageView imageView = view.findViewById(R.id.iv);
        TextView textView = view.findViewById(R.id.t1);
//替换数据操作
        imageView.setImageResource((Integer) data.get(i).get("photo"));
        textView.setText((String) data.get(i).get("name"));
        return view;
    }
}

在XML中,可以自己弄

1.在activity_main

<?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/list"
        android:layout_width="100dp"
        android:layout_height="wrap_content"

        />

2.在自己设置的XML中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/iv"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/szy"/>
        <TextView
            android:id="@+id/t1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="行贿金额"
            android:textSize="25sp"/>
    </LinearLayout>


</LinearLayout>

总而言之,数据源的设置与替换,XML的设置具有自由性与依附传递性。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到