Android開發之道(9)RadioBox、CheckBox和Spinner

鍾超發表於2012-02-20

轉載請註明本文來自“柳大的CSDN部落格”:http://blog.csdn.net/Poechant


1、RadioBox與RadioGroup


在《Android開發之道(5)Widget、Activity與Intent》一文中已經初步接觸到了 RadioBox 的使用方式,並且知道了在 Widget 的容納關係中 RadioGroup 是使用 RadioBox 時必不可省的容器。由於本篇博文不作深入的 Widget 使用詳解或者原始碼分析,而僅是熟悉 Android 中都有哪些常用 Widget,所以這裡不再贅述了 : )


2、CheckBox


CheckBox 與 RadioBox 的區別就是可以複選。下面是一個例項:


final TextView textView = (TextView) findViewById(R.id.textView);

final CheckBox[] checkBoxes = {

(CheckBox) findViewById(R.id.checkBox01),

(CheckBox) findViewById(R.id.checkBox02),

(CheckBox) findViewById(R.id.checkBox03),

(CheckBox) findViewById(R.id.checkBox04),

(CheckBox) findViewById(R.id.checkBox05),

(CheckBox) findViewById(R.id.checkBox06),

(CheckBox) findViewById(R.id.checkBox07),

(CheckBox) findViewById(R.id.checkBox08),

(CheckBox) findViewById(R.id.checkBox09)

};

for (final CheckBox checkBox : checkBoxes) {

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

textView.setText("You have chose " + checkBox.getText() +".");

}

});

}


其中 checkBox01 到 checkBox09 都被定義在佈局檔案中。通過一個迴圈體為每個 CheckBox 建立事件監聽器。這樣在每選擇一個選項時,上面的 textView 中會立刻顯示。下面是程式啟動後的畫面。




選擇了選項“Korea”後,注意觀察上面 textView 發生了什麼變化沒有?




3、Spinner


Spinner 就是一個下拉選單。下面用例項來說明如何建立一個 Spinner,並且在選擇其某一項後,將該項顯示在 TextView 中。


public class Testextends Activity {

private staticfinal String[] countries =new String[] {

"Argentina","Australia", "Brazil","Canada", "China","China Hongkong",

"China Macau","China Taiwan", "Egypt","Finland", "France",

"Germany","India", "Japan","Korea", "South Africa","Russia", "UK","US"

};

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


// Get widgets by Ids

final TextView textView = (TextView) findViewById(R.id.textView);

Spinner spinner = (Spinner) findViewById(R.id.spinner);

// Create an adapter filled with countries array for the spinner

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, countries);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// Combine the adapter with the spinner

spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {


@Override

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

textView.setText("I'm in " + countries[arg2] + " now.");

arg0.setVisibility(View.VISIBLE);

}


@Override

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

}

});

}

}


上文中先建立一個 ArrayAdapter<String> 型別,是因為 countries 是一個字串陣列。然後將下拉選單 spinner 的 adapter 設定為它。然後為它新增 OnItemSelectedListener 監聽器,其中 Override onItemSelected 方法和 onNothingSelected 方法。程式啟動後首先看到的是:






這幾個與選項有關的 Widget 先初識到這裡 : )


轉載請註明本文來自“柳大的CSDN部落格”:http://blog.csdn.net/Poechant

-

相關文章