求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Android开发教程
Android 开发环境配置
Android 架构
Android 应用组件
Android Hello World示例
Android 资源组织和访问
Android Activity
Android Service
Android 广播接收器
Android 内容提供者
Android 碎片/片段
Android Intent过滤器
Android UI布局
Android UI控件
Android 事件处理
Android 样式和主题
Android 自定义组件
Android 拖放
Android 通知
Android 基于位置服务
Android 发送电子邮件
Android 发送短信/SMS
Android 拨打电话
发布Android应用
ndroid Alertdialog
Android Animation实例
Android音频捕获
Android音频管理器实例
Android
Android最佳实践
Android Bluetooth实例
Android Camera
Android Clipboard
Android自定义字体
Android数据备份
Android Gestures/手势
Android图片效果
Android图片切换
Android内部存储
Android JetPlayer实例
Android JSON解析器
Android加载Spinner
Android本地化
Android登录实例
Android MediaPlayer
 
 

Android AutoCompleteTextView(自动完成)实例
775 次浏览
35次  

如果想获得建议,当在一个可编辑的文本字段中键入,可以通过AutoCompleteTextView做到这一点。当用户输入它会自动提供建议。建议列表显示在下拉菜单,从中用户可以选择一个项目,以取代与编辑框的内容。

为了使用AutoCompleteTextView 需要首先在XML中创建一个AutoCompletTextView字段。其语法如下给出。

<AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="65dp"
        android:ems="10" >  

在此之后,必须在java中得到这个TextView,参考语法如下给出:

private AutoCompleteTextView actv;
    actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);

需要做的下一件事就是指定要显示的建议项目列表。可以指定列表项为ava字符串数组或在strings.xml中。其语法如下给出。

   String[] countries = getResources().
       getStringArray(R.array.list_of_countries);
       ArrayAdapter adapter = new ArrayAdapter
      (this,android.R.layout.simple_list_item_1,countries);
       actv.setAdapter(adapter);  

下面是文件?src/com.yiibai.autocomplete/MainActivity.java?的内容:

package com.yiibai.autocomplete;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.MultiAutoCompleteTextView;
    public class MainActivity extends Activity {
       private AutoCompleteTextView actv;
       private MultiAutoCompleteTextView mactv;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);


          String[] countries = getResources().
          getStringArray(R.array.list_of_countries);
          ArrayAdapter adapter = new ArrayAdapter
         (this,android.R.layout.simple_list_item_1,countries);


          actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
           mactv = (MultiAutoCompleteTextView) findViewById
          (R.id.multiAutoCompleteTextView1);


          actv.setAdapter(adapter);
          mactv.setAdapter(adapter);
          mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
         }
         @Override
         public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
     }
  }?

下面是文件?activity_main.xml?的内容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:paddingBottom="@dimen/activity_vertical_margin"
       android:paddingLeft="@dimen/activity_horizontal_margin"
       android:paddingRight="@dimen/activity_horizontal_margin"
       android:paddingTop="@dimen/activity_vertical_margin"
       tools:context=".MainActivity" >

       <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="65dp"
        android:ems="10" >
          <requestFocus /> 
    </AutoCompleteTextView>

    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/autoCompleteTextView1"
        android:layout_centerVertical="true"
        android:ems="10" />

     <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/auto_complete"
        android:textAppearance="?android:attr/textAppearanceMedium" />
   <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/multiAutoCompleteTextView1"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="19dp"
        android:text="@string/multi_auto_complete"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </RelativeLayout>

下面是文件?Strings.xml?的内容

<?xml version="1.0" encoding="utf-8"?>
    <resources>
       <string name="app_name">AutoComplete</string>
       <string name="action_settings">Settings</string>
       <string name="hello_world">Hello world!</string>
       <string name="auto_complete">AutoComplete</string>
       <string name="multi_auto_complete">Multi AutoComplete</string>
       <string-array name="list_of_countries">
        <item >USA</item>
        <item >Uk</item>
        <item >Canada</item>
        <item >Australia</item>
        <item >France</item>
        <item >Italy</item>
        <item >China</item>
        <item >Japan</item>
        <item >Spain</item>
        </string-array>
    </resources>?

下面是文件?AndroidManifest.xml?的内容

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.yiibai.autocomplete"
        android:versionCode="1"
        android:versionName="1.0" >

      <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
       <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
      <activity
           android:name="com.yiibai.autocomplete.MainActivity"
           android:label="@string/app_name" >
           <intent-filter>
              <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
        </activity>
     </application>
 </manifest>

让我们试着运行Androidmanager应用程序。将安装该应用程序在AVD,AVD将显示如下画面。

现在只是在文本视图以查看国家的建议。正如输入两个两个字母这是ca,它显示的建议是:canada

multiAutoCompleteTextView演示建议不仅是一个单词,同样也可以对于整个文本。由于写第一个字母,当开始写入第二个字后,它会显示建议。这可以示出在下面的图片。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



775 次浏览
35次
 捐助