您的位置首页生活百科

Android程序开发:[13]RadioGroup和Spinner

Android程序开发:[13]RadioGroup和Spinner

的有关信息介绍如下:

Android程序开发:[13]RadioGroup和Spinner

  本节主要介绍Android基本控件选项RadioGroup和Spinner的使用方法,RadioGroup是单选按钮RadioButton,一个RadioGroup可以包含多个单选RadioButton,这些RadioButton彼此互斥。Spinner可以说是RadioGroup的补充,当选项太多时,用下拉框在代替。

新建一个项目,项目名称为RadioTestAPP,创建完成后打开acitvity_main.xml文件,在布局内首先加入1个RadioGroup。其中,android:orientation定义了子控件的排列方式,参数为:horizontal,水平;vertical,垂直。代码如下:

////////////////////////////////////////////////////////////////////////////////

android:id="@+id/sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/male"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:checked="true"

android:text="男" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=" "/>

android:id="@+id/female"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女" />

在布局内加入1个Spinner、1个Button和1个TextView。下拉菜单Spinner在布局中比较简单,其它两个控件前面已经讲解过,不在陈述。代码如下:

/////////////////////////////////////////////////////////////////////////////

android:id="@+id/from"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@+id/button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="查看结果" />

android:id="@+id/showresult"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20sp" />

布局中的Spinner没有选项,需要在MainActivity.java程序中使用适配器来注入选项。代码如下:

/////////////////////////////////////////////////////////////////////////////

//定义选项

private static final String[] placeArray={"中国","美国","新加坡","加拿大"};

//给Spinner设置适配器

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, placeArray);

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

from.setAdapter(adapter);

在MainActivity.java程序中设置Spinner事件监听方法。代码如下:

//////////////////////////////////////////////////////////////////////////

//设置Spinner事件监听

from.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView arg0, View arg1,

int flag, long arg3) {

strPlace = placeArray[flag];

}

@Override

public void onNothingSelected(AdapterView arg0) {

// TODO Auto-generated method stub

}

});

在MainActivity.java程序中,设置RadioGroup和Button事件监听。代码如下:

////////////////////////////////////////////////////////////////////////////

//设置RadioGroup事件监听

RadioGroup sex=(RadioGroup) findViewById(R.id.sex);

sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){

@Override

public void onCheckedChanged(RadioGroup arg0, int id) {

strSex=(id ==R.id.male?"男":"女");

}

});

//设置Button事件监听

Button button=(Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener(){

public void onClick(View arg0){

TextView text=(TextView) findViewById(R.id.showresult);

text.setText(strSex+"\n"+strPlace);

}

});

运行程序。查看运行结果。附在MainActivity.java完整代码:

/////////////////////////////////////////////////////////////////////////

package com.example.radiotestapp;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.RadioGroup;

import android.widget.Spinner;

import android.widget.TextView;

public class MainActivity extends Activity {

private static final String[] placeArray={"中国","美国","新加坡","加拿大"};

private String strSex="男";

private String strPlace;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

//给Spinner设置适配器

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, placeArray);

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

from.setAdapter(adapter);

//设置Spinner事件监听

from.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView arg0, View arg1,

int flag, long arg3) {

strPlace = placeArray[flag];

}

@Override

public void onNothingSelected(AdapterView arg0) {

// TODO Auto-generated method stub

}

});

//设置RadioGroup事件监听

RadioGroup sex=(RadioGroup) findViewById(R.id.sex);

sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){

@Override

public void onCheckedChanged(RadioGroup arg0, int id) {

strSex=(id ==R.id.male?"男":"女");

}

});

//设置Button事件监听

Button button=(Button) findViewById(R.id.button);

button.setOnClickListener(new OnClickListener(){

public void onClick(View arg0){

TextView text=(TextView) findViewById(R.id.showresult);

text.setText(strSex+"\n"+strPlace);

}

});

}

}