Android高级控件

 

Android高级控件,是指具有更高级功能的控件,这类控件丰富了界面的多样性,强化了程序的功能,更好地实现了Android应用程序,比如,进度条,自动完成文本,Spinner等等。


自动完成文本框
在Android开发中提供了两种智能输入框——AutoCompleteTextView和MultiAutoCompleteTextView。它们的功能类似于百度在搜索栏输入信息的时候,弹出与输入信息接近的提示信息,然后用户选择点击需要的信息,自动完成文本输入。AutoCompleteTextView和MultiAutoCompleteTextView都是可编辑的文本视图,前者能够实现动态匹配输入的内容,后者则能够对用户键入的文本进行有效地扩充提示。MultiAutoCompleteTextView可以在输入框一直增加选择值

AutoCompleteTextView控件

代码如下

xml代码


<AutoCompleteTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/actv_main_auto"
    android:completionThreshold="1"
    />
 
values下面的strings.xml
<!--定义数组-->
    <string-array name="date">
        <item>李一</item>
        <item>李二</item>
        <item>李三</item>
        <item>王五</item>
        <item>老王</item>
        <item>110</item>
        <item>120</item>
    </string-array>

 
 Java代码 

package com.example.g160828_android07_widetpusl;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Spinner;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {


    private AutoCompleteTextView actv_main_auto;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     
        //拿到自动补全控件的ID
        actv_main_auto = (AutoCompleteTextView) findViewById(R.id.actv_main_auto);
        //获取字符创数组
        String date[]=getResources().getStringArray(R.array.date);

        //适配器
        ArrayAdapter adapterder=new ArrayAdapter(this,R.layout.item_actv,date);
     
        //让控件设置适配器
        actv_main_auto.setAdapter(adapterder);
   
    }
}


MultiAutoCompleteTextView控件

xml代码

<MultiAutoCompleteTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/mact_main_mult"
    android:completionThreshold="1"
    />



values下面的strings.xml
<!--定义数组-->
    <string-array name="date">
        <item>李一</item>
        <item>李二</item>
        <item>李三</item>
        <item>王五</item>
        <item>老王</item>
        <item>110</item>
        <item>120</item>
    </string-array>

values下面的strings.xml
<!--定义数组-->
    <string-array name="date">
        <item>李一</item>
        <item>李二</item>
        <item>李三</item>
        <item>王五</item>
        <item>老王</item>
        <item>110</item>
        <item>120</item>
    </string-array>



Java代码


values下面的strings.xml
<!--定义数组-->
    <string-array name="date">
        <item>李一</item>
        <item>李二</item>
        <item>李三</item>
        <item>王五</item>
        <item>老王</item>
        <item>110</item>
        <item>120</item>
    </string-array>

Java代码
package com.example.g160828_android07_widetpusl;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Spinner;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {


    private AutoCompleteTextView actv_main_auto;
    private MultiAutoCompleteTextView mact_main_mult;
    private Spinner sp_main_spinner;
    private Spinner sp_main_spinner2;
    private Map map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        //拿到多个自动补全控件的ID
        mact_main_mult = (MultiAutoCompleteTextView) findViewById(R.id.mact_main_mult);
      
        //获取字符创数组
        String date[]=getResources().getStringArray(R.array.date);
        //适配器
        ArrayAdapter adapterder=new ArrayAdapter(this,R.layout.item_actv,date);
        //设置多个自动完成文本框的分隔符
        MultiAutoCompleteTextView.Tokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();
        mact_main_mult.setTokenizer(tokenizer);


        //让控件设置适配器
        actv_main_auto.setAdapter(adapterder);
    }



}

  下拉列表(Spinner),每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样是来自适配器。


<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/sp_main_spinner">

</Spinner>


    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/sp_main_spinner2">

    </Spinner>

 
values下面的strings.xml
<!--定义数组-->

 
<string-array name="province">
    <item>湖南省</item>
    <item>安徽省</item>
    <item>四川省</item>
</string-array>

    <string-array name="hunan">
        <item>怀化市</item>
        <item>洪江市</item>
        <item>长沙市</item>
    </string-array>

    <string-array name="anhui">
        <item>合肥市</item>
    </string-array>
    <string-array name="sichuan">
        <item>攀枝花</item>
        <item>六盘水</item>
    </string-array>

 
 
 

package com.example.g160828_android07_widetpusl;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Spinner;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {


    private AutoCompleteTextView actv_main_auto;
    private MultiAutoCompleteTextView mact_main_mult;
    private Spinner sp_main_spinner;
    private Spinner sp_main_spinner2;
    private Map map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //拿到下拉框控件的ID
        sp_main_spinner = (Spinner) findViewById(R.id.sp_main_spinner);
        sp_main_spinner2 = (Spinner) findViewById(R.id.sp_main_spinner2);
      

        //获取省的数组
        final String provinces[]=getResources().getStringArray(R.array.province);
        //拿到市的数组
        String hunan[]=getResources().getStringArray(R.array.hunan);
        String anhui[]=getResources().getStringArray(R.array.anhui);
        String sichuan[]=getResources().getStringArray(R.array.sichuan);
        //适配器
       
        ArrayAdapter adapterderProvinces=new ArrayAdapter(this,R.layout.item_actv,provinces);


        //map集合
        map = new HashMap();
        //赋值
        map.put(provinces[0],hunan);
        map.put(provinces[1],anhui);
        map.put(provinces[2],sichuan);

        //监听
        sp_main_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                String pname=provinces[i];
                get(pname);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });


        //让控件设置适配器
  
     
        sp_main_spinner.setAdapter(adapterderProvinces);

    }
//
    public  void get(String s){
//通过健获得数组
        String aa[]=(String[])map.get(s);
        //市的适配器
        ArrayAdapter   adapterdershi=  new  ArrayAdapter(this,R.layout.item_actv,aa);
sp_main_spinner2.setAdapter(adapterdershi);
    }



}

















 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值