`

系出名门Android(6) - 控件(View)

阅读更多

系出名门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",
    };
}

  

分享到:
评论

相关推荐

    系出名门Android系列文章整合

    "系出名门Android系列文章整合"很可能是针对Android开发的学习资料集合,包括了Android的基本概念、开发环境搭建、UI设计、应用程序架构以及核心组件等方面的内容。 【Java编程】 由于Android应用主要是用Java语言...

    凯旋名门酒店裙楼商业提案-10页.pdf

    【文档标题】提到的是“凯旋名门酒店裙楼商业提案”,这是一份关于如何有效利用酒店裙楼空间进行商业开发的计划书。【描述】则指出这份提案旨在通过分析项目本身及其所在区域的市场环境,为招商策略提供指导,以帮助...

    20210222-东方证券-融创服务-1516.HK-出身名门展露龙头潜质,成长性与确定性俱佳.pdf

    标题:“东方证券-融创服务-1516.HK-出身名门展露龙头潜质,成长性与确定性俱佳” 所涉及的知识点 在分析这份文件时,我们需要从标题、描述以及内容中提取出关键词以及相应的知识点。标题中包含了几个关键点:东方...

    西门子S7-200系列PLC各种型号介绍.rar

    6. **扩展模块**:S7-200系列允许添加数字输入/输出模块、模拟输入/输出模块、通信模块等,以扩展其功能。这些模块可根据项目需求灵活配置,确保了系统的可扩展性。 7. **故障诊断与保护**:S7-200系列具有内置的...

    名门监理月报3期.doc

    【名门监理月报3期】是鹤山市建设工程监理有限公司对名门项目基坑支护工程在2014年10月10日至11月6日期间的工作总结。该月报主要包括以下几个方面的内容: 1. **本月工程形象进度**: - B、C区的喷锚工程完成了80%...

    融创服务-1516.HK-出身名门展露龙头潜质,成长性与确定性俱佳.rar

    6. **确定性分析**:基于行业趋势、政策环境、公司治理等因素,评估融创服务未来业绩的稳定性,以及抵御市场风险的能力。 7. **投资价值**:综合以上因素,给出对融创服务的投资评级和目标股价,为投资者提供参考。...

    【编号5】PPT快闪视频-名门APP产品发布PPT模板.pptx

    【编号5】PPT快闪视频-名门APP产品发布PPT模板.pptx

    专题讲座2021-2022年凯旋名门酒店裙楼商业提案.doc

    【专题讲座2021-2022年凯旋名门酒店裙楼商业提案】是一份关于商业策划和招商的文档,主要讨论了维也纳酒店裙楼的商业开发策略。以下是根据文档内容提取的相关知识点: 1. **项目分析**: - 项目位于宜昌市伍家区桔...

    名门监理月报1期.doc

    【名门监理月报1期】是鹤山市建设工程监理有限公司对名门项目基坑支护工程在2014年7月29日至8月31日期间的工作总结报告。该月报详细记录了工程的进度、质量控制、安全文明施工、监理工作情况以及存在的问题和建议。 ...

    名门国际策划提案.ppt

    【名门国际策划提案】是郑州盈四方房地产营销策划有限公司为一个房地产项目——名门国际进行的策划方案。该项目位于郑州市农业路与东明路交汇处,是一个集酒店式公寓、大型综合性商业和精品小户型公寓于一体的综合...

    地产策划X年鼎福名门世家开盘仪式活动方案.pptx

    6. **现场包装** 现场包装是活动视觉效果的关键,能有效吸引和指引参与者: - 五彩刀旗:作为标识和引导,展示项目LOGO。 - 升空气球:增加视觉冲击力,强化品牌存在感。 - 气球拱门:标明活动时间和地点,引导...

    参考资料-2010年5月郑州名门国际项目物业用房装饰装修工程招标文件.zip

    《2010年5月郑州名门国际项目物业用房装饰装修工程招标文件》是针对一项具体建筑工程项目——郑州名门国际项目的物业用房进行装饰装修的招标文档。这份资料详细阐述了整个招标过程中的各项规定、技术要求以及投标方...

    名门家训经典大全.doc

    名门家训经典大全.doc

    名门国际策划提案.pptx

    名门国际策划提案.pptx

    java笔试题选择题-AndroidBang:《Android江湖花名册》

    天榜:或名门正派,或鬼斧神工。天下之大,缺之若失。 名榜:十八般武艺,各家有套路。天下之大,得之你幸。 遗碑:天下之大,天下之外,亦有天下。 天榜 正册:鹿刀在手,天下我有  |   |   |   |   |  ...

    名门联系人名单.docx

    【名门联系人名单.docx】文件显然是一份与建筑工程管理相关的文档,主要列出了在某一项目中的关键联系人及其职责。在这个特定的行业里,这些角色对于项目的顺利进行至关重要。以下是对各职位及其职责的详细说明: 1...

    名门监理月报2期.doc

    【名门监理月报2期】是针对2014年9月1日至10月9日期间,名门项目基坑支护工程的监理工作进行的总结报告,由鹤山市建设工程监理有限公司的监理项目部编撰。该报告详细记录了工程的形象进度、质量控制、安全文明施工等...

Global site tag (gtag.js) - Google Analytics