首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android学习札记(四)CheckBox、RadioGroup、ProgressBar、ListView、Spinner

2012-09-16 
Android学习笔记(四)CheckBox、RadioGroup、ProgressBar、ListView、Spinner一、多选按钮-CheckBox用法:首先也

Android学习笔记(四)CheckBox、RadioGroup、ProgressBar、ListView、Spinner

一、多选按钮-CheckBox

用法:首先也是通过控件ID来得到代表控件的对象,然后为其添加监听器。

设置监听器代码:

?

      //为多选按钮添加监听器        swim.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubif(isChecked){System.out.println("swim is checked");}else{System.out.println("swim is unchecked");}}});
?

?其中,swimBox是CompoundButton的子类,所以他可以向上转型为CompoundButton的类型,将参数传进。

?

?

?

?

二、单选按钮-RadioGroup

用法:同CheckBox

设置监听器代码:

?

        //单选按钮监听器            @Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {// TODO Auto-generated method stub      if(female.getId()== checkedId){        System.out.println("你是女的");        Toast.makeText(checkRadio.this, "女", Toast.LENGTH_SHORT).show();        /**Toast用于选择时弹出提示*/        }else if (gender.getId()== checkedId)        {        System.out.println("你是男的");        Toast.makeText(checkRadio.this, "男", Toast.LENGTH_SHORT).show();        }}        });
?

<ProgressBarandroid:id="@+id/firstBar"style="?android:attr/progressBarStyleHorizontal"android:layout_width="200dp"android:layout_height="wrap_content"android:visibility="gone"/是否可视的状态,gone是不可视的
/>?

?默认的进度条最大值是100,如上例子,若想进度条自定义,则用:android:max="xxx"即可,也可以在代码里面设置。如:下面例子中!

?

?

Activity中实现进度条:

?

package mars.progressbar;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;public class ProgressBarTest extends Activity {    /** Called when the activity is first created. *///声明变量private ProgressBar firstBar =null;private ProgressBar secondBar = null;private Button myButton = null;private int i = 0 ;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //根据控件的ID来取得代表控件的对象        firstBar = (ProgressBar)findViewById(R.id.firstBar);        secondBar = (ProgressBar)findViewById(R.id.secondBar);        myButton = (Button)findViewById(R.id.myButton);        myButton.setOnClickListener(new ButtonListener());    }    class ButtonListener implements OnClickListener{    @Overridepublic void onClick(View v) {if(i == 0){//设置进度条处于可见的状态firstBar.setVisibility(View.VISIBLE);firstBar.setMax(150);secondBar.setVisibility(View.VISIBLE);}else if ( i < firstBar.getMax()){//获得获得进度条的最大值//设置主进度条的当前值firstBar.setProgress(i);//设置第二进度条的当前值firstBar.setSecondaryProgress(i + 10);//因为默认的进度条无法显示进行的状态secondBar.setProgress(i);}else{//设置进度条处于不可见状态firstBar.setVisibility(View.GONE);secondBar.setVisibility(View.GONE);}i = i + 10 ;}        }    }
?

?

?

?

四、列表-ListView

?

列表实现的不是Activity,而是ListActivity。

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="fill_parent"android:layout_height="fill_parent"><LinearLayout android:id="@+id/listLinearLayout"android:layout_width="fill_parent" android:layout_height="wrap_content"android:orientation="vertical"><ListView android:id="@id/android:list" android:layout_width="fill_parent"android:layout_height="wrap_content" android:drawSelectorOnTop="true"android:scrollbars="vertical" /></LinearLayout></LinearLayout>

user.xml:

?

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="horizontal" android:paddingLeft="10dip"android:paddingRight="10dip" android:paddingTop="1dip"android:paddingBottom="1dip"><TextView android:id="@+id/user_name" android:layout_width="180dip"android:layout_height="30dip" android:textSize="5pt"android:singleLine="true" /><TextView android:id="@+id/user_ip" android:layout_width="fill_parent"android:layout_height="fill_parent" android:gravity="right"android:textSize="5pt" /></LinearLayout>

Activity代码:

?

public class Activity01 extends ListActivity {/**继承于ListActivity类*/@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();HashMap<String, String> map1 = new HashMap<String, String>();HashMap<String, String> map2 = new HashMap<String, String>();HashMap<String, String> map3 = new HashMap<String, String>();map1.put("user_name", "zhangsan");map1.put("user_ip", "192.168.0.1");map2.put("user_name", "zhangsan");map2.put("user_ip", "192.168.0.2");map3.put("user_name", "wangwu");map3.put("user_ip", "192.168.0.3");list.add(map1);list.add(map2);list.add(map3);MyAdapter listAdapter = new MyAdapter(this, list,R.layout.user, new String[] { "user_name", "user_ip" },new int[] { R.id.user_name,R.id.user_ip});/**this即为当前这个ListActivity的对象, * list关键字,将鼠标放在list上可看到ArrayList<HashMap<String, String>> list * 表示为:首先它是一个ArrayList,里面放上HashMap,HashMap里又放上2个String对象 * R.id.uder_name是布局文件,后面一长串是数组,最后那长串是控制显示在列表中的控件布局 * user_name和user_ip是对应在HashMap里面的列,最后的new int[]则是对应在列中的值*/setListAdapter(listAdapter);}}
MyAdapter是自定义方法,MyAdapter:
package mars.listview;import java.util.List;import java.util.Map;import android.R.color;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.SimpleAdapter;public class MyAdapter extends SimpleAdapter {private LayoutInflater inflater = null;private List<Map<String,Object>> styles = null;public List<Map<String, Object>> getStyles() {return styles;}public void setStyles(List<Map<String, Object>> styles) {this.styles = styles;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubView result = super.getView(position, convertView, parent);System.out.println("positon---->" + position);if(result != null){inflater.inflate(R.layout.user1, null);}return result;}public MyAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {super(context, data, resource, from, to);inflater = LayoutInflater.from(context);}}
?
五、Spinnner
 Spinner s1 = (Spinner) findViewById(R.id.Sp_Button_ChangeRoom);//下拉列表选择桌位号或者包厢号                //将可选内容与ArrayAdapter连接        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.SP_ChangeRoom, android.R.layout.simple_spinner_item);                //设置下拉列表风格        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                //将adapter添加到s1中         s1.setAdapter(adapter);        //添加Spinner事件监听        s1.setOnItemSelectedListener(new OnItemSelectedListener() {                /** 第一个参数  是适配器 <?>是适配器里内容的类型,可把?改成你存的类型.                 *  第二个参数 是你当前选择的view                 *  第三个参数 是你所选项在适配器中的索引位置                  *  第四个参数 选定项目的行数                 */                    public void onItemSelected(                            AdapterView<?> parent, View view, int position, long id) {                    if(id>4){                        showToast(id+1+"号包厢");                    }else{                    showToast(id+1+"号桌");                    }                                    }@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stubshowToast("没有选择桌号或者包厢号");}});        }        private void showToast(CharSequence msg) {        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
?

热点排行