iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Mobile Development

Android Studio開發系列 第 15

【DAY 15】元件介紹:Spinner-2-儲存選單資料在values資料夾中

  • 分享至 

  • xImage
  •  

上篇我們說到,Spinner選單當中的資料可以直接創建在容器當中,不過我們也可以選擇將其存放於values資料夾內,之後如果創建更多的下拉式選單,我們就不用在程式碼當中創建許多容器,也方便將內容元素集中統一管理。

我們承接上篇的程式,改將資料存放於values資料夾中的strings.xml檔案中。

首先打開values資料夾中的strings.xml檔案

將資料以陣列方式存入,等等就是要抓取這個string-array name。

完成之後,回到主程式,將適配器的資源部分改成剛命名的string-array name。

//下拉式選單適配器
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.array_language,
        android.R.layout.simple_spinner_item);
spinner.setAdapter(adapter);

MainActivity:

package com.example.it_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    //定義變數btn1,tx1,choice,spinner,element容器
    private Button btn1;
    private TextView tx1;
    private String choice;
    private Spinner spinner;
    static final String[] element= {"你好 世界","Hello World","ハローワールド","Hallo Welt","Salut tout le monde"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //綁定元件和變數
        btn1=findViewById(R.id.button);
        tx1=findViewById(R.id.textView);
        spinner=findViewById(R.id.spinner);

        //下拉式選單適配器
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.array_language,
                android.R.layout.simple_spinner_item);
        spinner.setAdapter(adapter);

        //下拉式選單監聽器
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                //根據索引值 i 來選取物品
                choice=element[i];
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });

        //btn1按下後將選取到的物品印出
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                tx1.setText(choice);
            }
        });
    }
}

這樣就大功告成了,我們來看看成品。

Spinner的用處有許多,在選擇物品時就可以考慮使用,也能夠鎖定使用者選取的內容,是個方便的工具。今天文章大致上就介紹到這裡,下一篇文章見~~


上一篇
【DAY 14】元件介紹:Spinner-1
下一篇
【DAY 16】元件介紹:Checkbox-1
系列文
Android Studio開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言