iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
自我挑戰組

向Android APP開發說Hello系列 第 22

Day 22. 以ArrayList建立TextView

在前一天的應用中,我們建立了一個Array:

String[] tortoises = new String[10];
tortoises[0] = "Cyclemys trifasciata";
tortoises[1] = "Chinemys reevesiis";
tortoises[2] = "Mauremys mutica";
tortoises[3] = "Ocadia sinensis";
tortoises[4] = "Platysternon megacephalum";
tortoises[5] = "Trachemys scripta elegans";
(以下省略)...

Array與ArrayList

可以發現Array必須事先宣告大小,而ArrayList相較於Array,能夠有更大的彈性。
Array的元素可以放基本型別(像是int, bool等),也可以放object,但ArrayList只能放object。

ArrayList<Integer> //正確
ArrayList<int> //錯誤

因此要怎麼選擇,端看使用情境:

  • 用ArrayList (隨時會變多變少):Wi-Fi列表、YouTube待看清單等。
  • 用Array(固定大小):設定鬧鐘(一星期七天)、若任何分類固定的App。

ArrayList類別

ArrayList實質上是個類別,因此在增加、修改其元素時需要用其方法,像是

ArrayList<String> tortoises = new ArrayList<String>();
tortoises.add("Cyclemys trifasciata");
tortoises.add(1, "Chinemys reevesiis");
tortoises.get(0);
tortoises.remove(1);
tortoises.size();

以ArrayList建立TextView

在我們的xml中,建立一個LinearLayout,並給它id android:id="@+id/rootView"

<?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"
    android:paddingLeft="16dp"
    android:orientation="vertical"
    android:id="@+id/rootView"
    tools:context=".MainActivity">
</LinearLayout>

在我們的MainActivity.java中

  • 使用findViewById找到該LinearLayout。
  • 建立一個TextView物件,設定其Text為ArrlyList的第一個。
  • 將TextView加入LinearLayout物件中。
package com.example.android.eventlistener_practice;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

        // create ArrayList
        ArrayList<String> tortoises = new ArrayList<String>();
        tortoises.add("Cyclemys trifasciata");
        tortoises.add("Chinemys reevesiis");
        tortoises.add("Mauremys mutica");
        tortoises.add("Ocadia sinensis");
        tortoises.add("Platysternon megacephalum");
        tortoises.add("Trachemys scripta elegans");
        tortoises.add("Chelodina siebenrocki");
        tortoises.add( "Carettochelys insculpta");
        tortoises.add("Chelydra serpentina");
        tortoises.add("Chrysemys picta");

        LinearLayout rootView = findViewById(R.id.rootView);
        TextView wordView = new TextView(this);
        wordView.setText(tortoises.get(0));
        rootView.addView(wordView);
    }
}

最後在手機上查看:
https://ithelp.ithome.com.tw/upload/images/20181106/20107569EE9lod3Q6h.png


上一篇
Day 21. Array與日誌(Logcat)
下一篇
Day 23. Android的Memory管理與View Recycling (Part.1)
系列文
向Android APP開發說Hello30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言