Android高级控件01

1.AutoCompleteTextView 自动补全文本框:


下面说一下 简单的一个自动补全:

activity_main:

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/actv_main_auto"
        android:completionThreshold="1"  //表示当你输入第一个字符时就会弹出提示:
        />

MainActivity:

 AutoCompleteTextView autoCompleteTextView= (AutoCompleteTextView) findViewById(R.id.actv_main_auto);

  //获得字符串数组:这是我自动补全中的一些资料:
        String data []=getResources().getStringArray(R.array.data); 

在values文件夹的Strings下面:

 
        张三峰
        Fire
        I Got You
        Inside Out
        East Of Eden
        Battle Scars
        Counting Star
        Five Hundred Miles
        All we know
        Paris
        Roses
        Dont Let Me Down
        Homesike
        Wannabe
   

 //适配器: 布局你也可以用系统自带的布局:
        ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actve,data);

//给控件设置配置器:
        autoCompleteTextView.setAdapter(adapter);

接下来 ,就可以直接在界面的文本框里输入就可以出现自动补全的功能:

   MultiAutoCompleteTextView,是 AutoCompleteTextView的加强版,一时就是可以在文本框选了一个之后,再选一个,

与上面代码基本一样,只需要再加上:

 //设置多个自动完成文本框的分隔符:默认字符是;  ,
        MultiAutoCompleteTextView.Tokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();
       multiautoCompleteTextView.setTokenizer(tokenizer);


2.Spinner 下拉框:下面给大家说一下用下拉框实现的简单的二级联动:

activity_second   layout布局文件':

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/sp_second_spinner01"
    >

            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/sp_second_spinner02"
        >

   



SecondActivity中:

public class SecondActivity extends AppCompatActivity {


    private Spinner spinner1;
    private Spinner spinner2;
    private String sheng;
    private Map mp;
//这是secondactivity继承之后要重写的方法:
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);  //加载界面


        spinner1 = (Spinner) findViewById(R.id.sp_second_spinner01);
        spinner2 = (Spinner) findViewById(R.id.sp_second_spinner02);


        //获得省份:
        final String province []=getResources().getStringArray(R.array.Province);
        //获得市区:
        String hunan [] = getResources().getStringArray(R.array.hunan);
        String guangxi [] = getResources().getStringArray(R.array.guangxi);
        String guangdong []= getResources().getStringArray(R.array.guangdong);
        String zhejiang []= getResources().getStringArray(R.array.zhejiang);
        //配置器: 这是我的布局:你可以使用的系统布局:
        ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actve,province);

我的item_actve布局文件:


    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00ff1e"
    android:textColor="#ffffff"
    >



        //给控件添加配置器:
        spinner1.setAdapter(adapter);

        //将他们放入map里面:
        mp = new HashMap<>();

        mp.put(province[0], hunan);
        mp.put(province[1], guangxi);
        mp.put(province[2], guangdong);
        mp.put(province[3], zhejiang);


        //给spinner设置选择事件
        spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView parent, View view, int position, long id) {
              sheng=province[position];
              geishi(sheng);
            }


            @Override
            public void onNothingSelected(AdapterView parent) {


            }
        });

    }
public void geishi(String sheng){


    Toast.makeText(SecondActivity.this,"省份:"+sheng,Toast.LENGTH_SHORT).show();
            String shi []=mp.get(sheng);
        //配置器:
        ArrayAdapter adapter2=new ArrayAdapter(this,R.layout.item_actve,shi);
        //给控件添加配置器:
        spinner2.setAdapter(adapter2);

}

这是我values里面Strings的一些文件:二级联动所用到的资料:

   
        湖南省
        广西省
        广东省
        浙江省
   



   
    长沙市
    株洲市
    湘潭市
    邵阳市
    衡阳市
    永州市
    岳阳市



   
        南宁市
        桂林市
        全州市
        北海市
        梧州市
        柳州市
        防城港市
   



   
        广州市
        深圳市
        佛山市
        中山市
        潮州市
        东莞市
        龙华市
   


   
        杭州市
        舟山市
        金华市
        宁波市
        温州市
        嘉兴市
        湖州市
   


3.ListView:

 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:id="@+id/lv_main_listview"
     >

MainActivity中的代码:

//获得控件

     ListView listView= (ListView) findViewById(R.id.lv_main_listview);

//设置数据:
 String titles[]={"愤怒的老鸟","Tomcat","KFC","大黑牛","旺财","中国龙","北京烤鸭","蜡笔小新","7秒小金鱼","九尾狐"};

//设置适配器:

        ArrayAdapter adapter2=new ArrayAdapter(this,R.layout.item_actv,titles);

//给控件设置适配器:

   listView.setAdapter(adapter);

注意:现在的listview只是一排字符,如果在字符的前面加一些图片,则需要用到SimpleAdapter 简单适配器:

下面来说一下简单适配器

这些是我的项目中的一些图片:

int images[]={R.drawable.bird,R.drawable.cat,R.drawable.chicken,R.drawable.cow,R.drawable.dog,R.drawable.dragon,R.drawable.duck,R.drawable.elephant,R.drawable.fish,R.drawable.fox};

     //集合:将图片与标题放入集合中:

      List> list=new ArrayList<>();
        for (int i = 0; i < titles.length; i++) {
            Map mp=new HashMap<>();
            mp.put("image",images[i]);
            mp.put("title",titles[i]);
            list.add(mp);
        }

  //设置简单配置起=器   下面用到的是系统自带的布局:
        SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,android.R.layout.activity_list_item,new String[]{"image","title"},new int[]{android.R.id.icon,android.R.id.text1});
      //给listview设置简单配置器:
        listView.setAdapter(simpleAdapter);

     //给listview设置点击事件:
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this,"你选择的是:"+titles[position],Toast.LENGTH_SHORT).show();
            }
        });


好了!!!



你可能感兴趣的:(Android高级控件01)