android 之UI 高级控件Adapter(适配器详解)
生活随笔
收集整理的這篇文章主要介紹了
android 之UI 高级控件Adapter(适配器详解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
了解適配器組件:
適配器是一個連接數據源和AdapterView的橋梁,通過它能有效的實現數據源與AdapterView的分離設置,使AdaptereView與數據的綁定更加簡便,修改更加方便。
AdapterView與Adapter
1.AadapterView即Adapter(適配器)控件,其內容通常是一個包含多項相同格式資源的列表,每次只顯示其中的一項。
2.需要先把多項內容放入一個列表,然后將這個列表加載到Adapter控件中。
3.這個存放Adapter控件的內容的列表,在Android將稱為Adapter(適配器對象)。
數組適配器對象具體配對過程:
實例代碼:
前臺展示:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/listView_names"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textView_empty"/></LinearLayout>后臺邏輯:
package com.example.lenovo.adapter_demo;import android.provider.Settings; 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.ListView; import android.widget.TextView; import android.widget.Toast;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {//尋找控件private ListView listView_names;private TextView textView_empty;/***數據源*/private List<String> data = new ArrayList<>();/***適配器對象*/private ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.listView_names = (ListView) this.findViewById(R.id.listView_names);this.textView_empty = (TextView) this.findViewById(R.id.textView_empty);//設置當ListView 控件中條目為空時顯示的View對象this.listView_names.setEmptyView(this.textView_empty);/*//第一種方式:String[] data = {"李云龍","楚云飛","張三","李四"};ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,//上下文對象android.R.layout.simple_list_item_1,//控件每一行顯示內容對應的TextView控件對象data//數據源);//設置適配器對象this.listView_names.setAdapter(adapter);*//*//方式二:數據源時集合,數據源通過調用適配器對象的addAll()方法添加到適配器對象中List<String> data = new ArrayList<>();for(int i = 0;i < 5;i++){data.add("向往"+i);}adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);*/ /*//方式三:通過調用ArrayAdapter 的靜態方法創建數組適配器對象(需要自己在res中添加xml文件)ArrayAdapter<CharSequence> adpter = ArrayAdapter.createFromResource(this,R.array.country,//數據源對應的資源id值android.R.layout.simple_list_item_1);*///注冊ListView條目點擊監聽器對象this.listView_names.setOnItemClickListener(new AdapterView.OnItemClickListener() {/*** 當ListView 條目被點擊時自動執行的方法* @param parent 事件源,當前就是ListView控件對象* @param view 用戶點擊條目對應的TextView控件對象* @param position 用戶點擊條目控件對應的索引值,索引從0開始* @param id 行號,一般和position相等* 需求:得到用戶點擊條目對應的內容*/@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {//方式一:通過數據源中的索引值和ListView 控件中條目的索引值一一對應的關系獲取數據//String item = data.get(position);//方式二:通過調用適配器對象的getItem(position)獲取數據//String item = adapter.getItem(position);//方式三:通過調用適配器控件對象的getItemAtPosition(position)方法獲取數據//String item = parent.getItemAtPosition(position).toString();//方式四:通過用戶點擊條目對應的控件對象獲取數據String item = ((TextView)view).getText().toString();Toast.makeText(MainActivity.this,"item="+item,Toast.LENGTH_LONG).show();System.out.println("===OnItemClick(AdapterView<?> parent="+parent+",View view="+view+",int position="+position+",long id ="+id+")====");}});//注冊長按ListView_names.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){/*** 當用戶長按ListView 控件對象條目時自動調用的方法* @param parent 事件源,當前就是ListView控件對象* @param view 用戶點擊條目對應的TextView控件對象* @param postion 用戶點擊條目控件對應的索引值,索引從0開始* @parm id 行號,一般和postion相等* @return 如果事件被消費則返回true,相反則返回false*//* @Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {//刪除用戶點擊條目對象data.remove(position);adapter.notifyDataSetChanged();//更新用戶界面System.out.println("=====onItemLongClick(AdapterView<?> parent="+parent+", View view="+view+", int position="+position+", long id="+id+")=====");return true;//事件是否被消費掉,如果消費掉則返回true,此時就不會在觸發OnItemClick 方法了}});*/} }總結
以上是生活随笔為你收集整理的android 之UI 高级控件Adapter(适配器详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华擎主板怎么设u盘启动 华擎主板如何进行
- 下一篇: 雷神911新电脑怎么开机 开启雷神911