Android学习笔记(十九):高级UI组件----列表类组件(列表视图ListView)

列表类组件(列表视图ListView)

  1. 列表视图
    以垂直列表的形式来列出需要显示的列表项。这些列表项可以带图片,也可以不带。
    在这里插入图片描述
    在activity_main.xml文件中,用ListView标签来定义列表视图。
    在这里插入图片描述
  2. 属性
  • android:layout_width :取值为match_parent,即与父容器相同。
  • android:layout_height :取值为wrap_content,即包裹自身内容。
  • android:entries :设置列表视图中每个列表项的内容。取值为一个数组资源。在res/values目录下新建一个array.xml,并使用string-array标签和item标签来设置列表视图的内容:
    在这里插入图片描述
    在这里插入图片描述
    android:entries取值为该数组资源:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述
  1. 在Java代码中通过适配器来指定列表项的内容
    首先,给列表视图设置一个id,并注释掉通过entries属性设置列表项内容的代码:
    在这里插入图片描述
    在Java代码中进行如下操作:
package com.example.listviewdemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends AppCompatActivity {
    //定义一个列表视图
    ListView listView;
    //定义一个String[]
    String[] type=new String[]{"全部","电影","音乐","图书"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建一个数组适配器.第一个参数是上下文对象;
        //第二个参数是Android提供的布局资源;
        //第三个参数是保存列表项内容的String[]
        ArrayAdapter adapter=new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,type);
        //获取列表视图
        listView=findViewById(R.id.listview);
        //设置listview的适配器为adapter
        listView.setAdapter(adapter);
    }
}

运行结果:
在这里插入图片描述

  1. 获取用户点击的某个列表项的内容:
    为列表视图的每个列表项添加单击事件监听器
package com.example.listviewdemo;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
  //定义一个列表视图
  ListView listView;
  //定义一个String[]
  String[] type=new String[]{"全部","电影","音乐","图书"};
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      //创建一个数组适配器.第一个参数是上下文对象;
      //第二个参数是Android提供的布局资源;
      //第三个参数是保存列表项内容的String[]
      ArrayAdapter adapter=new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,type);
      //获取列表视图
      listView=findViewById(R.id.listview);
      //设置listview的适配器为adapter
      listView.setAdapter(adapter);
      //为列表视图的每一项设置单击事件监听器
      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
              Toast.makeText(MainActivity.this,parent.getItemAtPosition(position).toString(),Toast.LENGTH_LONG).show();
          }
      });
  }
}

运行结果:
在这里插入图片描述

发布了33 篇原创文章 · 获赞 10 · 访问量 5831

猜你喜欢

转载自blog.csdn.net/weixin_44480874/article/details/104374186