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();
          }
      });
  }
}

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章