4.20作业

4.20作业

这次作业题目所给出的的内容很简单,所以理解上不是很透彻,看其他同学的方法和我用的方法有点不一致,认为自己的做的有点简单或者没理解进去题目什么意思

  • 根据题目要求自定义Adapter

  • 列表的Adapter有三种类型:ArrayAdapter,SimpleAdapter以及SimpleCursorAdapter。我采用的是SimpleAdapter类

  • SimpleAdapter类用来处理ListView显示的数据,这个类可以将任何自定义的XML布局文件作为列表项来使用。

  • 列表显示需要三个元素:用来展示列表的view;数据;Adapter


先来看两个XML布局的主要代码:

activity_main

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/list"
    android:scrollbars="vertical"/>

item_listview

<ImageView
    android:layout_width="120dp"
    android:layout_height="130dp"
    android:scaleType="fitCenter"
    android:layout_margin="8dp"
    android:id="@+id/img"/>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#445CBB"
        android:textSize="35sp"/>

    <TextView
        android:id="@+id/club"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"/>
    <TextView
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        />
</LinearLayout>

Java代码

 public class MainActivity extends AppCompatActivity {
 private ListView list;
private SimpleAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
list=(ListView) findViewById(R.id.list);
    adapter = new SimpleAdapter(  //创建Adapter
            this,
            getData(),
            R.layout.item_listview,
            new String[]{"img", "title", "club","info"},
            new int[]{R.id.img, R.id.title,R.id.club,R.id.info});

    // 将数据加载到listview
    list=(ListView) findViewById(R.id.list);
    list.setAdapter(adapter);

    // 添加listview的每个item的单击的监听事件
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
            String data = (String) adapterView.getItemAtPosition(position);
        }
    });

}

private List<HashMap<String, Object>> getData() {
    List<HashMap<String, Object>> datas = new ArrayList<>();

    // 给list增加一条数据
    HashMap<String, Object> data = new HashMap<>();
    // Map映射添加数据
    data.put("title", "梅苏特·厄齐尔");
    data.put("club","俱乐部:阿森纳");
    data.put("info", "国籍:德国");
    data.put("img", R.drawable.a);
    // 将这个map放到list中
    datas.add(data);

    // 给list增加一条数据
    data = new HashMap<>();
    // Map映射添加数据
    data.put("title", "内马尔·达席尔瓦");
    data.put("club","俱乐部:巴塞罗那");
    data.put("info", "国籍:巴西");
    data.put("img", R.drawable.b);
    // 将这个map放到list中
    datas.add(data);

    data = new HashMap<>();
    // Map映射添加数据
    data.put("title", "克里斯蒂亚诺·罗纳尔多");
    data.put("club","俱乐部:皇家马德里");
    data.put("info", "国籍:葡萄牙");
    data.put("img", R.drawable.c);
    // 将这个map放到list中
    datas.add(data);


    data = new HashMap<>();
    // Map映射添加数据
    data.put("title", "冈萨洛·伊瓜因");
    data.put("club","俱乐部:尤文图斯");
    data.put("info", "国籍:阿根廷");
    data.put("img", R.drawable.d);
    // 将这个map放到list中
    datas.add(data);


    return datas;

}
}

最后的效果图如下:

posted @ 2017-04-29 00:30  yeech  阅读(141)  评论(0编辑  收藏  举报