iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Mobile Development

Android開發系列 第 16

[Day16]簡單的ListView

  • 分享至 

  • xImage
  •  

哈囉大家好今天我要來示範ListView,ListView是一種清單的元件,它可以將數據以清單的方式列出來給使用者觀看,廢話不多說那我們就開始吧!

activity_main.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">


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</LinearLayout>

在佈局方面我使用了LinearLayout並且給了他一個ListView。

MainActivity

package com.example.day30_listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    ListView listView;
    ListAdapter listAdapter;
    String [] continent = {"北美洲","南美洲","亞洲","歐洲","非洲","大洋洲","南極洲"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.listView);
        listAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,continent);
        listView.setAdapter(listAdapter);
        listView.setOnItemClickListener(onItemClickListener);

    }

    private AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this,"您點選了:"+continent[position],Toast.LENGTH_SHORT).show();
        }
    };
}

一開始我先宣告了ListView和ListAdapter,Adapter是用來管理資料與畫面並且將資料載入ListView,然後還有宣告一個陣列來裝一些資料。

listAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,continent);
  • this是表示要帶入目前使用的context
  • android.R.layout.simple_list_item_1 在這個練習是帶入了android原本就有的layout只要照著打就會Android Studio就找得到該layout
  • 要帶入的第三個參數就是要帶入的第三個參數就是將準備的資料帶入,而在這個示範裡我帶入了String型態的陣列資料。
    private AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this,"您點選了:"+continent[position],Toast.LENGTH_SHORT).show();
        }
    };

上面的程式碼是點選ListView裡面的Item後會做的事情,在這個示範裡我做的功能是當點選了Item之後,會彈出以個Toast來告知使用者點選了哪一個Item,而position會從0開始計算,陣列也是由0開始計算,所以假設我們點了南美洲,position會是1然後程式碼會去找continent陣列裡的第1個也就是南美洲。

那今天的示範就到這了,謝謝大家的觀看。


上一篇
[Day15]簡單的GridLayout
下一篇
[Day17]連接Google雲端並上傳檔案_1
系列文
Android開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言