01 - 基本控件:文本域类控件(TextView、EditText、AutoCompleteTextView)

       转载注明出处:http://blog.csdn.net/eana_don/article/details/8245849

       在布局中每一个控件都必须有的是layout_width,layout_height.所以这里每个文本域类的控件都是需要这两个。而id则是根据需要指定。需要在代码中取出的控件或者被引用的控件就需要ID,如果只是做展示用,ID也可以不用。

        文本框允许用户在应用程序中输入文本。它们可以是单行的,也可以是多行的。点击文本框后显示光标,并自动显示键盘。文本框还包含其它操作,比如文本选择(剪切,复制,粘贴)。

    TextView直接继承自View,EditText继承自TextView,而AutoCompleteTextView又继承EditText。大部分Textview的xml属性都可以适用于其他二者。

        1.TextView

            首先列出TextView的常用xml属性:

            android:autoLink               ---                   将符合指定格式的文本转化为可点击的超链接形式

            android:drawableXXXX   ---                   在文本的上下左右绘制给定图像,XXXX为Bottom,Top,Left,Right

            android:gravity                   ---                   指定文本的对齐方式

            android:hint                        ---                   文本为空时,文本框内的提示内容

            android:password             ---                   输入的文本内容不会以明文展示,而是密码的形式

            android:singleLine            ---                   指定当行或多行,多行则超出文本宽度时自动换行

            android:text                        ---                   指定内容

            android:textColor               ---                   指定字体颜色

            android:textSize                 ---                   指定字体大小

            其余属性可以查看API,TextView用法如下。

            

<TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="1.限制输入类型:邮件地址类型"
        />


          2.EditText

          EditText用于用户输入数据,一般都是需要一个ID。用户输入数据可以对输入各种限制或者其他的作用。一下是一些常用的作用。

          a.限制输入类型:邮件地址类型

               

<EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:hint="@string/text_emailaddress_type"
        />
                                                                 

             b.限制输入类型:手机输入类型

                  

<EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="phone"
        />


                                                            


           c.指定键盘操作。当文本输入完毕用户点击发送或者回车时,执行的操作。需要指定一个xml属性imeOptions,并且指定动作完成时,需要执行什么操作,一般在Activity中写这段操作。

             xml写法:

<EditText
        android:id="@+id/action_edittext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:imeOptions="actionSend"
        />
           Acitivity的写法。这里只是简单打印证明执行了操作:

EditText action_et = (EditText) findViewById(R.id.action_edittext);
        action_et.setOnEditorActionListener(new OnEditorActionListener() {
			
			@Override
			public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
				// TODO Auto-generated method stub
				 if (actionId == EditorInfo.IME_ACTION_SEND) {
			            // Send the user message
			        Log.d("OnEditorAction", "EditorInfo.IME_ACTION_SEND");
			        return true;
			      }
				 return false;
			}
		});

          输入操作:

                                                                      

                 执行结果:

                                                           


                 d.添加链接到email admin@sina.com , 添加链接到phone 10086 , 添加链接到web www.baidu.com

           

 <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="6.添加链接到email admin@sina.com"
        android:autoLink="email"
        />
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="7.添加链接到phone 10086"
        android:autoLink="phone"
        />
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="8.添加链接到web www.baidu.com"
        android:autoLink="web"
        />
                               


                 e.让超出的文本自动省略

      

       <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="9.让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号让超出宽度的字变成省略号"        android:ellipsize="middle"        />
                                                   

              f.修改样式

         

<TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="10.控制样式"
        android:textSize="18sp"
        android:textColor="#ff0000"
        android:shadowColor="#000000"
        android:shadowDx="15.0"
        android:shadowDy="20.0"
        android:shadowRadius="45.0"
        android:drawableLeft="@drawable/ic_action_search"
        />

                                       

       3.自动完成文本框

       效果:当用户点击文本框输入时,根据用户输入的字搜索相关文本内容并出现下拉菜单。

                                        a.使用数组作为数据来源                                                             b.使用资源文件作为数据来源

                      


            布局文件为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    android:gravity="center_horizontal"
    >
	<AutoCompleteTextView
	    android:id="@+id/auto_textview_1"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content" 
	    android:hint="以数组形成Adapter,请输入"
	    android:completionThreshold="1"
	    android:dropDownVerticalOffset="20dp"
	    android:textColor="#000000"
	    />
	<AutoCompleteTextView
	    android:id="@+id/auto_textview_2"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content" 
	    android:hint="以XML资源文件行程Adapter,请输入"
	    android:completionThreshold="1"
	    android:dropDownVerticalOffset="20dp"
	    android:textColor="#000000"
	    />
</LinearLayout>
           代码控制:

          

String[] language = new String[]{
			"C",
			"C++",
			"Object C",
			"JAVA",
			"JE22",
	};
 /*
         * 第一个自动完成文本框的处理
         * */
        autoTextView1 = (AutoCompleteTextView) findViewById(R.id.auto_textview_1);
        //用ArrayAdapter封装数组
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
        		this,//传入的上下文
        		android.R.layout.simple_list_item_1,//指定外观形式
        		language//传递进的数组
        		);
        autoTextView1.setAdapter(adapter1);
 

        /*
         * 第二个自动完成文本框的处理
         * */
        autoTextView2 = (AutoCompleteTextView) findViewById(R.id.auto_textview_2);
        //用ArrayAdapter封装资源文件
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
        		this,//传入的上下文
        		android.R.layout.simple_list_item_1,//指定外观形式
        		getResources().getStringArray(R.array.countries_array)//传递进的数组
        		);
        autoTextView2.setAdapter(adapter2);
              

            数组资源文件:country_array.xml


           

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries_array">
        <item>Afghanistan</item>
        <item>Albania</item>
        <item>Algeria</item>
        <item>American Samoa</item>
        <item>Andorra</item>
        <item>Angola</item>
        <item>Anguilla</item>
        <item>America</item>
        <item>China</item>
        <item>Japan</item>
        <item>Korea</item>
        <item>England</item>
    </string-array>
</resources>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值