Android学习笔记6

转载 2012年03月31日 16:35:29

 

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

 

介绍
在 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",
    };
}

 

 

 

 

 

 

相关文章推荐

Pro Android学习笔记(一二四):Telephony API(6):SIP Phone(上)

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及作者@恺风Wei。 Android有and...

Android学习笔记2-1--组件6--Fragment

简介在Android3.0开始Android引入了Fragment。当初最主要的目的是为了给大屏幕设备提供更加灵活和动态的UI设计。随着应用功能越来越多和界面越来越复杂,我们会利用Fragment对A...

Android学习笔记6:使用Intent1

《第一行代码——Android》郭霖著 Intent介绍Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Inte...

Android学习笔记6——系统权限

Android是一个权限分开的操作系统

Android学习笔记_6_保存文件到SDCard

一、加入访问sdcard的权限 Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回...

Pro Android学习笔记(七二):HTTP服务(6):HttpURLConnection

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们都是使用HttpClient来进行...

Pro Android学习笔记(十八):用户界面和控制(6):Adapter和AdapterView

AdapterView不仅仅是UI,同时还将数据关联到UI上,例如在手机中经常使用的ListView就是AdapterView。 ListView、GridView、Spinner和Gallery都...

Android NDK学习笔记6-JNI对引用数据类型的操作

字符串操作    JNI把Java字符串当成引用类型来处理,JNI提供了java字符串与C字符串之间相互转换的必要函数。因为java字符串对象是不可变的,因此JNI不提供任何修改现有的java字符串内...

android学习笔记6--------------数据的存储与访问(1)

转载注明出处:袁方的技术博客 http://blog.csdn.net/yf210yf android为数据存储提供了多种方式: 1.文件 2.SharedPreferences    (主...
  • yf210yf
  • yf210yf
  • 2011年09月27日 16:53
  • 1564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习笔记6
举报原因:
原因补充:

(最多只允许输入30个字)