系出名门Android(6) - 控件(View)之DatePicker, TimePicker, ToggleButton, EditText, ProgressBar, SeekBar, AutoCompleteTextView, MultiAutoCompleteTextView


作者:webabcd


介绍
在 Android 中使用各种控件(View)
DatePicker - 日期选择控件
TimePicker - 时间选择控件
ToggleButton - 双状态按钮控件
EditText - 可编辑文本控件
ProgressBar - 进度条控件
SeekBar - 可拖动的进度条控件
AutoCompleteTextView - 支持自动完成功能的可编辑文本控件
MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)


1、DatePicker 的 Demo
datepicker.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">

<!--
DatePicker - 日期选择控件
-->
<DatePicker android:id="@+id/datePicker"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</DatePicker>

</LinearLayout>


_DatePicker.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;

public class _DatePicker extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.datepicker);

// 具体的应用可参见对话框中的示例
setTitle("DatePicker");
}
}



2、TimePicker 的 Demo
timepicker.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">

<!--
TimePicker - 时间选择控件
-->
<TimePicker android:id="@+id/timePicker"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</TimePicker>

</LinearLayout>


_TimePicker.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;

public class _TimePicker extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.timepicker);

// 具体的应用可参见对话框中的示例
setTitle("TimePicker");
}
}



3、ToggleButton 的 Demo
togglebutton.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">

<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/textView" />

<!--
ToggleButton - 双状态按钮控件
textOn - 当按钮状态为 true 时所显示的文本
textOff - 当按钮状态为 false 时所显示的文本
-->
<ToggleButton android:id="@+id/toggleButton"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="关闭" android:textOff="打开" />

</LinearLayout>


_ToggleButton.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ToggleButton;

public class _ToggleButton extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.togglebutton);

setTitle("ToggleButton");

final ToggleButton btn = (ToggleButton) this.findViewById(R.id.toggleButton);
// setOnClickListener() - 响应按钮的鼠标单击事件
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
TextView txt = (TextView) _ToggleButton.this.findViewById(R.id.textView);
// ToggleButton.isChecked() - 双状态按钮的按钮状态
txt.setText("按钮状态:" + String.valueOf(btn.isChecked()));
}
});
}
}



4、EditText 的 Demo
edittext.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">

<!--
EditText - 可编辑文本控件
-->
<EditText android:id="@+id/editText" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</EditText>

</LinearLayout>


_EditText.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;

public class _EditText extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.edittext);

setTitle("EditText");

EditText txt = (EditText) this.findViewById(R.id.editText);
txt.setText("我可编辑");
}
}



5、ProgressBar 的 Demo
progressbar.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">

<!--
ProgressBar - 进度条控件
-->

<!--以下分别为大、中、小的进度条控件(圆圈状)-->
<ProgressBar android:id="@+android:id/progress_large"
style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ProgressBar android:id="@+android:id/progress"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ProgressBar android:id="@+android:id/progress_small"
style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<!--
进度条控件(条状)的演示
style - 进度条的样式,本例使用内置样式
max - 进度的最大值
progress - 第一进度位置
secondaryProgress - 第二进度位置
-->
<ProgressBar android:id="@+id/progress_horizontal"
style="?android:attr/progressBarStyleHorizontal" android:layout_width="200px"
android:layout_height="wrap_content" android:max="100"
android:progress="50" android:secondaryProgress="75" />

</LinearLayout>


_ProgressBar.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;


// 另见对话框中的进度条
public class _ProgressBar extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

// 设置特性以允许在应用程序的标题栏上显示进度条(条状)
requestWindowFeature(Window.FEATURE_PROGRESS);
// 设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

this.setContentView(R.layout.progressbar);

setTitle("ProgressBar");

// 在标题栏上显示进度条(条状)
setProgressBarVisibility(true);
// 在标题栏上显示进度条(圆圈状)
setProgressBarIndeterminateVisibility(true);

// 指定进度条的进度
setProgress(50 * 100);
setSecondaryProgress(75 * 100);
}
}



6、SeekBar 的 Demo
seekbar.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">

<!--
SeekBar - 可拖动的进度条控件
max - 进度的最大值
progress - 第一进度位置
secondaryProgress - 第二进度位置
-->
<SeekBar android:id="@+id/seekBar" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:max="100"
android:progress="50" android:secondaryProgress="75" />

<TextView android:id="@+id/progress" android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<TextView android:id="@+id/tracking" android:layout_width="fill_parent"
android:layout_height="wrap_content" />

</LinearLayout>


_SeekBar.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;

public class _SeekBar extends Activity implements
SeekBar.OnSeekBarChangeListener {

SeekBar mSeekBar;
TextView mProgressText;
TextView mTrackingText;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.seekbar);

setTitle("SeekBar");

mSeekBar = (SeekBar) findViewById(R.id.seekBar);
// setOnSeekBarChangeListener() - 响应拖动进度条事件
mSeekBar.setOnSeekBarChangeListener(this);

mProgressText = (TextView) findViewById(R.id.progress);
mTrackingText = (TextView) findViewById(R.id.tracking);
}

// 拖动进度条后,进度发生改变时的回调事件
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromTouch) {
mProgressText.setText(progress + "%");
}

// 拖动进度条前开始跟踪触摸
public void onStartTrackingTouch(SeekBar seekBar) {
mTrackingText.setText("开始跟踪触摸");
}

// 拖动进度条后停止跟踪触摸
public void onStopTrackingTouch(SeekBar seekBar) {
mTrackingText.setText("停止跟踪触摸");
}

}



7、AutoCompleteTextView 的 Demo
autocompletetextview.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">

<!--
AutoCompleteTextView - 支持自动完成功能的可编辑文本控件
-->
<AutoCompleteTextView android:id="@+id/editText"
android:layout_width="fill_parent" android:layout_height="wrap_content" />

</LinearLayout>


_AutoCompleteTextView.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class _AutoCompleteTextView extends Activity {

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

setTitle("AutoCompleteTextView");

// 实例化适配器,指定显示格式及数据源
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_dropdown_item_1line,
ary);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.editText);
// 指定自动完成控件的适配器
textView.setAdapter(adapter);
}

// 自动完成控件的所需数据的数据源
private String[] ary = new String[] {
"abc",
"abcd",
"abcde",
"abcdef",
"abcdefg",
"hij",
"hijk",
"hijkl",
"hijklm",
"hijklmn",
};
}



8、MultiAutoCompleteTextView 的 Demo
multiautocompletetextview.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">

<!--
MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)
-->
<MultiAutoCompleteTextView android:id="@+id/editText"
android:layout_width="fill_parent" android:layout_height="wrap_content" />

</LinearLayout>


_MultiAutoCompleteTextView.java

代码
package com.webabcd.view;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView;

public class _MultiAutoCompleteTextView extends Activity {

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

setTitle("MultiAutoCompleteTextView");

// 实例化适配器,指定显示格式及数据源
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_dropdown_item_1line,
ary);
MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.editText);
textView.setAdapter(adapter);

// 设置多个值之间的分隔符,此处为逗号
textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}

// 自动完成控件的所需数据的数据源
private String[] ary = new String[] {
"abc",
"abcd",
"abcde",
"abcdef",
"abcdefg",
"hij",
"hijk",
"hijkl",
"hijklm",
"hijklmn",
};
}

更多相关文章

  1. JS与Android交互之html页面跳转到Android(安卓)Activity
  2. 转:Android(安卓)开发技巧杂集
  3. UI
  4. 点击LinearLayout使用selector改变TextView字体颜色
  5. Android(安卓)控件之DatePicker,TimePicker,Calender
  6. Android基础之基本控件
  7. android各个文件分析
  8. ANDROID获取设备ID、型号及其它信息
  9. android 获取控件真实高度

随机推荐

  1. Android开发签名(签名的作用,怎么使用Andro
  2. Android热修复方案研究(含AOP知识)
  3. Android(安卓)基础知识面试相关总结
  4. android px dpi 转换
  5. 2016年最佳的15款Android黑科技工具你知
  6. android 关于多任务下载问题
  7. 门道儿众多 购买Android手机注意事项
  8. 基于Android(安卓)NDK的学习之旅-----序
  9. android调用摄像头拍照,从相册中选择照片
  10. [Android进阶]Java、Android(安卓)内存泄漏