Android 输入控件

今天天气不错   虾米 来讲解 Android中输入的控件  在 Android中输入控件是常见的 随处可见 今天又时间 写一篇Android中输入控件的集合  了解他们的相同处和不同处,下面是Android系统中我们常用到的输入控件 好 废话不多 开始:

Android已经为接受来自用户的输入多种不同的输入控件的支持。常见的输入控件包括:

Buttons

Text Fields

Checkboxes

Radio Buttons

Toggle Buttons

Spinners

NumberPicker

Date  and Time Pickers

Android 将一个输入控件添加到您的用户界面非常简单 ,将xml元素添加到xml布局.

        

      

     
Buttons

       Android官方解释:按钮代表一个按钮部件。可以按下按钮,或者点击,由用户来执行一个动作。一个典型的        使用一个活动将下面的按钮:

        <Button

android:id="@+id/button_id"

android:layout_width="10dp"

android:layout_height="8dp"

android:layout_gravity="center"

android:layout_marginRight="10dp"

android:layout_weight="1"

android:background="@drawable/login_input_arrow" />

     

 public class MyActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);

         setContentView(R.layout.content_layout_id);

         final Button button = (Button) findViewById(R.id.button_id);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click
             }
         });
     }
 }

     

     Text Fields

    一个文本字段允许用户输入文本到您的应用程序。它可以是一行或多行。触摸一个文本字段位置,光标,并自动显示键盘。除了打字,文本字段允许各种各样的其他活动,例如文本选择(剪切、复制、粘贴)和数据通过自动完成查找。

    

     

<EditText
    android:id="@+id/search"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/search_hint"
    android:inputType="text"
    android:imeOptions="actionSend" />

      Android:inputType:输入的类型 允许输入Text(字符串)  TextEmailAddress(email的地址)  texturi(网址)

                                           number(数字) phone(号码) textCansentences()  textcapwords()                                                                  textautocurrect()  textpassword()  textmultiLine() 

          For example, here‘s how you can collect a postal address, capitalize each word, and disable text suggestions:

       

 <EditText
    android:id="@+id/postal_address"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/postal_address_hint"
    android:inputType="textPostalAddress|
                       textCapWords|
                       textNoSuggestions" />

   
Checkboxs

    
checkboxs 允许用户选择一个或多个  通常 checkboxs是一个列表在一个垂直下拉框中

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <CheckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/meat"
        android:onClick="onCheckboxClicked"/>
    <CheckBox android:id="@+id/checkbox_cheese"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/cheese"
        android:onClick="onCheckboxClicked"/>
</LinearLayout>

       

    在一个Activity 判断checkbox是否选中

     

public void onCheckboxClicked(View view) {
    // Is the view now checked?
    boolean checked = ((CheckBox) view).isChecked();

    // Check which checkbox was clicked
    switch(view.getId()) {
        case R.id.checkbox_meat:
            if (checked)
                // Put some meat on the sandwich
            else
                // Remove the meat
            break;
        case R.id.checkbox_cheese:
            if (checked)
                // Cheese me
            else
                // I‘m lactose intolerant
            break;
    }
}

   Radio   Butons

    单选按钮允许用户选择一个选项从一组。如果不是必要并排显示所有选项,使用微调控制项。

创建每个单选按钮选项,创建一个RadioButton在你的布局。然而,由于单选按钮是互相排斥的,你必须RadioGroup内它们分组在一起。通过分组在一起,可以选择系统确保只有一个单选按钮。

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.radio_pirates:
            if (checked)
                // Pirates are the best
            break;
        case R.id.radio_ninjas:
            if (checked)
                // Ninjas rule
            break;
    }
}

   Toggle  Buttons

    切换按钮允许在两种状态之间切换设置

    您可以添加一个基本的切换按钮与布局切换按钮 对象。的Android 4.0(API等级14)引入了另一种切换按钮,称为它提供了一个滑块控件,您可以使用添加开关交换对象。

  

            
   

     (切换按钮)                     开关 (Android4.0+)

                    

    响应点击事件

当用户选择一个切换按钮和开关,对象收到的点击事件。

要定义Click事件处理程序中,添加机器人:的onClick属性的 <切换按钮>或<开关>元素在XML布局。该属性的值必须是要在响应click事件调用的方法的名称。该活动举办的布局必须再执行相应的方法。

例如,这里有一个切换按钮与安卓的onClick属性:

     

<ToggleButton
    android:id = "@+id/togglebutton"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:textOn = "Vibrate在“
    机器人:textOff = “振动关闭”
    机器人:的onClick = “onToggleClicked” />

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();
   
    if (on) {
        // Enable vibrate
    } else {
        // Disable vibrate
    }
}

   
Spinners

     Spinner提供一个快速的方法来选择一个值从一组。在默认状态,微调器显示当前选择的价值。触摸Spinner与所有其他可用值显示一个下拉菜单,用户可以选择的一个新的。

   

    

       

     spinner布局

   

     Create a spinner like any view and specify the android:entries attribute to specify the set of options:            

<Spinner
         android:id="@+id/mySpinner"
         android:layout_width="wrap_content"
	 android:entries="@array/planets_arrays"
         android:prompt="@string/planets_prompt"
         android:layout_height="wrap_content" />

    

    特别的string array 的条目在res/values/planets_arrays下

    

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="planets_array">
		<item>Mercury</item>
		<item>Venus</item>
		<item>Earth</item>
		<item>Mars</item>
	</string-array>
</resources>

   查看Spinners指南更多细节。注意,定制一个微调控制项的文本需要使用自定义数组适配器和布局文件

   获取和设置多值

    String str_spinner=spinner.getseletedItem().toString();

  

public void setSpinnerToValue(Spinner spinner, String value) {
	int index = 0;
	SpinnerAdapter adapter = spinner.getAdapter();
	for (int i = 0; i < adapter.getCount(); i++) {
		if (adapter.getItem(i).equals(value)) {
			index = i;
			break; // terminate loop
		}
	}
	spinner.setSelection(index);
}

 

 
自定义ArrayAdapter 资源

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);

 

    Multiple Select Spinner

By default, the spinner only allows the user to select one option from the list. Check out the following resources surrounding multiple selection spinners:

    MultiSelectSpinner - Simple multi-select library

MultiSelect Tutorial 1

MultiSelect Tutorial 2

Simple Multi Dialog

  Note that we can also use a ListView in this case instead to avoid a spinner altogether.

   NumberPicker

    This is a widget that enables the user to select a number from a predefined range. First, we put the NumberPicker within the layout XML:

   

<NumberPicker
        android:id="@+id/np_total"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
/>

  Then we must define the desired range at runtime in the Activity:

   

public class DemoPickerActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo_picker);
        NumberPicker numberPicker =
            (NumberPicker) findViewById(R.id.np_total);
        numberPicker.setMinValue(0);
        numberPicker.setMaxValue(100);
        numberPicker.setWrapSelectorWheel(true);
    }
}

   Note we set the range with setMinValue and setMaxValue and made the selector wrap with
setWrapSelectorWheel. If you want to listen as the value changes, we can use the OnValueChangeListener listener:

// within onCreate
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        Log.d("DEBUG", "Selected number in picker is " + newVal);
    }
});

  You can also call getValue to retrieve the numeric value any time. See the
NumberPicker docs for more details.

   References

  

  http://developer.android.com/guide/topics/ui/controls.html

 

时间: 2024-12-27 18:07:25

Android 输入控件的相关文章

Android输入控件经典—Input Controls【装】

输入控件是应用程序用户接口的一类交互式组件.Android系统提供了大量可供大家在UI中使用的输入控件,比如按钮.文本编辑空间.复选框.单选框以及各种对话框等. 基本输入控件 下面我们通过一个个人设置页面的例子讲解输入控件的基本用法. 先看界面效果,如图10-6所示. ▲图10-6  控件示例界面 主界面main.xml 1.   <?xml version="1.0" encoding="utf-8"?> 2.   <LinearLayout 3

Delphi XE7 FMX Android输入控件自适应虚拟键盘的位置

XE7带的Demo,演示了如何适应虚拟键盘,即当虚拟键盘弹出时,如果掩盖了当前的输入项,如Edit1,那么重新计算屏上所有控件的位置,让Edit1能够正常显示在键盘上面,让用户能看到输入的内容.问题是,键盘弹出后,如果用户利用键盘上的隐藏键,隐藏了键盘后,不能恢复屏上控件的位置,这个问题,其实XE5就存在.要感谢盒子上Flying Wang,用他的方法,很好的解决了上面的问题:原文在这里,改后的FMX.VirtualKeyboard.Android.pas代码在这里.

Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="f

Android界面编程——Android基本控件

 Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员如何才能开发出友好的图形界面呢.实际上Android提供了非常丰富UI(User Interface)控件,开发者只要掌握了这些控件的特性,按照一定的规律,就可以像堆积木一样开发出友好的图形界面. 本章内容将介绍常用控件的具体用法. 2.1  Android UI的基础知识 Android中所有的

Android常见控件初探

温故而知新.最近复习了一些android常用控件,接下来,根据android 官方API,总结一下它们的一些常见用法.(开发测试环境为Android4.4) 一.TextView 由官方的关系图可以看出,TextView继承View类,直接子类有Button,CheckedTextView等,间接子类有AutoCompleteTextView, CheckBox等. 下面列举一些TextView常见的xml属性: android:text TextView显示的文字 android:textCo

android EditText控件如何禁止输入内容

问题? android EditText控件如何禁止往里面输入内容? 修改版解决方法: EditText editText =  (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了,EditText的功能不就是往上面写入内容吗? 再者,如果真要禁止输入文本,在布局文件中添加 android:focusable="false", 或者在代码中使用editText.s

【Android的从零单排开发日记】之入门篇(十三)——Android的控件解析

Android的控件都派生自android.view.View类,在android.widget包中定义了大量的系统控件供开发者使用,开发者也可以从View类及其子类中,派生出自定义的控件. 一.Android的控件结构 Android中有一类重要的控件,称为容器控件,它们派生自View的子类android.view.ViewGroup.每个容器控件都可以作为父控件存在,其中包含若干个子控件,每个子控件占据其父控件的一块区域,统一由父控件进行管理和支配. 交互界面中控件的关系直观上是极其复杂的,

FineUI之使用SQL脚本从数据库表中生成相应的输入控件

在WEB开发时,经常需要依据数据库表中的字段建立相应的输入控件,来获取输入的数据.每次都需要按字段来敲,显然太低效,而且容易出错.这里提供一个SQL脚本生成相应输入控件的方法. USE DBDemo DECLARE @TEMP_TABLE_NAME NVARCHAR(512) DECLARE @WIDTH NVARCHAR(50) SET @TEMP_TABLE_NAME='Stuff' SET @WIDTH='200' SELECT '<f:'+TOKEN+' runat="server

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方