日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

004 Android之其他控件

發(fā)布時(shí)間:2025/3/21 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 004 Android之其他控件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • ListView
      • ListView常用屬性
      • ListView基本使用
      • ListView動(dòng)態(tài)插入數(shù)據(jù)
      • ListView實(shí)現(xiàn)圖文混排
    • Adapter
      • Adapter(適配器種類(lèi))
      • 自定義Adapter的使用
    • Spinner下拉列表
    • AutoCompleteTextView自動(dòng)補(bǔ)全

ListView

ListView常用屬性

屬性說(shuō)明
divider設(shè)置分割線(xiàn)的顏色
dividerHeight設(shè)置分割線(xiàn)的高度
Scrollbars設(shè)置滾動(dòng)條的顯示或者隱藏
Fadescrollbars設(shè)置滾動(dòng)條自動(dòng)隱藏或者顯示
Entries引用一個(gè)將使用在此ListView里的數(shù)組,若數(shù)組是固定的,使用此屬性將比在程序中寫(xiě)入更為簡(jiǎn)單

ListView基本使用

設(shè)置基礎(chǔ)屬性

<ListViewandroid:id="@+id/lv1"android:divider="#FF00FF"android:dividerHeight="10dp"android:layout_width="match_parent"android:layout_height="wrap_content">android:entries="@array/names"</ListView>

設(shè)置字符串?dāng)?shù)組

<string-array name="names"><item>Tome</item><item>Andy</item><item>GuiShou</item><item>Jack</item><item>Andy</item><item>Niko</item></string-array>

效果如圖:

ListView動(dòng)態(tài)插入數(shù)據(jù)

想要在ListView中動(dòng)態(tài)插入數(shù)據(jù),需要下面幾個(gè)步驟

  • 在布局文件中編寫(xiě)代碼
  • 在xml中添加ListView標(biāo)簽
  • 在Activity中編寫(xiě)代碼
  • 獲取ListView對(duì)象
  • 準(zhǔn)備數(shù)據(jù)源(Array數(shù)組)
  • 配置適配器(ArrayAdapter)
  • 將適配器關(guān)聯(lián)到ListView中
  • 什么是適配器

    適配器是數(shù)據(jù)和視圖間的橋梁,它負(fù)責(zé)把數(shù)據(jù)所提供的內(nèi)容顯示到視圖所定義的外觀中

    示例代碼如下:

    private void InitListView() {//獲取界面對(duì)象ListView listview=findViewById(R.id.lv1);//準(zhǔn)備數(shù)據(jù)源String data[]={"上海","北京","廣州","武漢","三亞","成都","南昌","廈門(mén)","福建","海口","南昌"};//創(chuàng)建適配器ArrayAdapter<String> adaper=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,data);//將適配器和ListView關(guān)聯(lián)listview.setAdapter(adaper);}

    實(shí)際效果如圖:

    ListView實(shí)現(xiàn)圖文混排

    首先新建一個(gè)layout文件,實(shí)現(xiàn)一個(gè)單一的ListView樣式,代碼如下:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="match_parent"android:layout_margin="6dp"android:layout_height="match_parent"><ImageViewandroid:id="@+id/logo"android:layout_margin="5dp"android:src="@mipmap/ic_launcher"android:layout_width="wrap_content"android:layout_height="wrap_content" /><LinearLayoutandroid:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:id="@+id/title"android:text="王者榮耀"android:textSize="20dp"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/version"android:text="版本:1.8.8"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/size"android:text="大小:1998MB"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout><Buttonandroid:id="@+id/btn1"android:layout_margin="5dp"android:text="卸載應(yīng)用"android:layout_width="wrap_content"android:layout_height="wrap_content" /> </LinearLayout>

    預(yù)覽效果如圖:

    接著編寫(xiě)JAVA代碼

    private void InitListView() {//獲取界面對(duì)象ListView listview=findViewById(R.id.lv1);//準(zhǔn)備數(shù)據(jù)源List<Map<String,Object>> maplist=new ArrayList<>();Map<String,Object> map1=new HashMap<>();map1.put("logo",R.mipmap.ic_launcher);map1.put("title","王者榮耀");map1.put("version","1.8.8");map1.put("size","1178M");Map<String,Object> map2=new HashMap<>();map2.put("logo",R.mipmap.ic_launcher);map2.put("title","爐石傳說(shuō)");map2.put("version","2.8.8");map2.put("size","1878M");Map<String,Object> map3=new HashMap<>();map3.put("logo",R.mipmap.ic_launcher);map3.put("title","極品飛車(chē)");map3.put("version","2.8.8");map3.put("size","2478M");maplist.add(map1);maplist.add(map2);maplist.add(map3);//創(chuàng)建適配器SimpleAdapter adaper=new SimpleAdapter(this,maplist,R.layout.list_item,new String[]{"logo","title","version","size"},new int[]{R.id.logo,R.id.title,R.id.version,R.id.size});//將適配器和ListView關(guān)聯(lián)listview.setAdapter(adaper);}

    實(shí)現(xiàn)效果如圖:

    Adapter

    Adapter(適配器種類(lèi))

  • ArrayAdapter:適用于簡(jiǎn)單的文字列表
  • SimpleAdapter:適用于簡(jiǎn)單的圖文混排
  • SimpleCursorAdapter:適用于數(shù)據(jù)源是數(shù)據(jù)庫(kù)的列表
  • 自定義Adapter(繼承自BaseAdapter):最靈活的適配器,適用于絕大多數(shù)情況
  • 自定義Adapter的使用

    之前我們已經(jīng)用過(guò)ArrayAdapter和SimpleAdapter,現(xiàn)在來(lái)學(xué)習(xí)一下自定義自定義Adapter的使用。

    首先創(chuàng)建一個(gè)類(lèi),繼承自BaseAdapter,

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-jKqLM4HU-1623032124581)(004 Android之其他控件.assets/1622808098021.png)]

    BaseAdapter是個(gè)抽象類(lèi),需要重寫(xiě)這個(gè)類(lèi)下面的方法

    @Overridepublic int getCount() {return mList.size();}@Overridepublic Object getItem(int i) {return mList.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {//輸出日志Log.d("GuiShou","位置"+i+"view"+view);//加載一個(gè)列表項(xiàng)的布局文件,獲取界面對(duì)象//獲取布局管理器LayoutInflater layoutInflater=LayoutInflater.from(mContext);View iview=layoutInflater.inflate(R.layout.list_item,null);//將數(shù)據(jù)添加到布局對(duì)象中Map<String,Object> map=mList.get(i);int resid= (int)map.get("logo");String version =(String)map.get("version");String title=(String)map.get("title");String Size=(String)map.get("size");//獲取界面對(duì)象ImageView ilogo=iview.findViewById(R.id.logo);TextView ititle=iview.findViewById(R.id.showTitle);TextView iversion=iview.findViewById(R.id.version);TextView isize=iview.findViewById(R.id.size);//將數(shù)據(jù)設(shè)置到界面上ilogo.setImageResource(resid);ititle.setText(title);iversion.setText(version);isize.setText(Size);//返回對(duì)象return iview;}

    在類(lèi)內(nèi)創(chuàng)建兩個(gè)成員變量,并填寫(xiě)構(gòu)造方法,用于將數(shù)據(jù)傳輸?shù)浇缑?/p> private List<Map<String,Object>> mList;private Context mContext;public MyAdapter(List<Map<String,Object>> mList,Context mContext) {this.mList=mList;this.mContext=mContext;}

    然后創(chuàng)建適配器關(guān)聯(lián)ListView即可

    //創(chuàng)建適配器MyAdapter adaper=new MyAdapter(maplist,this);//將適配器和ListView關(guān)聯(lián)listview.setAdapter(adaper);

    Spinner下拉列表

    Spinner和ListView很相似,使用步驟都差不多

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

    首先準(zhǔn)備控件,接著編寫(xiě)代碼,關(guān)聯(lián)適配器

    private void InitSpinner() {//自己準(zhǔn)備一個(gè)下拉列表final String[] strings={"北京","上海","廣州","深圳"};//獲取控件對(duì)象Spinner spinner=(Spinner)findViewById(R.id.spinner);//創(chuàng)建適配器ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,strings);//關(guān)聯(lián)適配器spinner.setAdapter(adapter);//設(shè)置監(jiān)聽(tīng)器spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {String sel=strings[i];Toast.makeText(MainActivity.this,sel,Toast.LENGTH_LONG);}@Overridepublic void onNothingSelected(AdapterView<?> adapterView) {}});}

    實(shí)際效果如圖:

    AutoCompleteTextView自動(dòng)補(bǔ)全

    控件代碼如下:

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

    completionThreshold屬性表示輸入第幾個(gè)字符開(kāi)始提示。

    Activity設(shè)置代碼如下:

    private void InitAutoText() {//獲取界面對(duì)象AutoCompleteTextView actv=(AutoCompleteTextView)findViewById(R.id.auto1);//準(zhǔn)備數(shù)據(jù)源String[] objects=new String[]{"hello1","hello2","hello3","world"};//創(chuàng)建適配器 設(shè)置數(shù)據(jù)//創(chuàng)建適配器ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1,objects);//關(guān)聯(lián)適配器actv.setAdapter(adapter);}

    實(shí)際效果如圖:

    總結(jié)

    以上是生活随笔為你收集整理的004 Android之其他控件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。