android的列表
1. android 下拉列表
Android的下拉列表是用Spinner 這個類來實現的。
Spinner的使用(分別使用ArrayAdapter和自定義Adapter實現),使用ArrayAdapter進行適配數據:
1:首先定義一個布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
2:建立數據源,使用數組,這些數據將會在Spinner下來列表中進行顯示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="spinnername">
<item>北京</item>
<item>上海 </item>
<item>廣州</item>
<item>深圳</item>
</string-array>
</resources>
3:接著在Activity中加入如下的代碼(使用了系統定義的下拉列表的布局文件,當然也可以自定義)
// 初始化控制項
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立數據源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter並且綁定數據源
ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems);
//綁定 Adapter到控制項
mSpinner.setAdapter(_Adapter);
2. Android 下拉列表Spinner
在UI中經常會使用到下拉列表,在android控制項中有兩個下拉列表控制項:
在xml中添加控制項的使用:
主題:
這些都沒有達到我要的效果:
android:entries // 傳入的是values文件夾下的arrayx.xml內的數據
android:spinnerMode //顯示模式有popmenu和dialog兩種
android:prompt //當顯示模式為dialog時生效,作用為顯示dialog的標題內容
3. 一行代碼搞定 Android 復雜列表埋點曝光
一個好的產品離不開數據分析,在手機 APP 中,數據分析極致化需要細致到某個時刻列表曝光的了哪幾個 Item。
2022 年了,基本上目前 Android 上可以滑動的復雜列表都是 RecyclerView 或者其擴展,這里分享一個封裝的思路。
如果非要細化細節:
各種方案核心都差不多,最關鍵的就是通過 LayoutManager 獲取屏幕內第一個可見和最後一個可見 item position,上報其區間內的 Item。這里簡稱這個邏輯為 檢查上報邏輯 。
但是觸發時機有所不同,通常如下方案一和二所述,當然除了方案一和方案二外,還有一些別的方案,比如監聽 RecyclerView 的布局樹變化觸發 檢查上報邏輯 等方案。
可以發現方案二相比方案一更有利於減少各種回調的注冊和周期的控制,下文會在方案二的基礎上,闡述用法和相關實現思路。
倉庫地址: RecyclerViewExposure
這里會主要說明一些主要邏輯,需要完整的邏輯可以 fork 倉庫 查看
思路來自於 lifecycle 的設計,這里主要是想讓 Activity/Fragment 提供可見和不可見的狀態變化給外部訂閱
對 List Item 的收集處理是 RecyclerViewExposure 最核心的收集數據邏輯,這里針對在 Activity 的使用作為例子。上文已經講述如何做一個 PageLifeCycleHolder 為其他組件提供頁面可見狀態,下文將直接使用。
4. 如何在Android開發中動態載入的list列表數據
Android中載入list列表數據主要是通過Adapter實現,可用顯示列表的控制項如下:
Listview
GridView
ExpandListview
顯示具體的數據需要通過Adapter實現,Android目前有4種Adapter:
ArrayAdapter
SimpleAdapter
SimpleCursorAdapter
BaseAdapter ( 自定義Adapter)
具體操作步驟 ( 以自定義Adapter為例):
在xml中定義Listview布局
在代碼中通過ID找到Listview控制項
構建Adapter對象,新建一個類繼承自BaseAdapter,重寫它的四個方法,具體如下代碼
構造好適配器後設置Listview的adapter對象為新建的適配器,界面即可顯示數據
在數據變動的地方,只需要調用adapter的notifyDataSetChanged方法即可刷新界面
java">packagecom.beryl.gougou;
importandroid.content.Context;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapter;
importjava.util.List;
/**
*Createdbyyton16/11/14.
*/
{
privateList<String>datalist;
privateLayoutInflaterinflater;
publicMyAdapter(Contextcontext,List<String>datalist){
this.datalist=datalist;
inflater=LayoutInflater.from(context);
}
@Override
publicintgetCount(){
returndatalist.size();
}
@Override
publicObjectgetItem(intposition){
returndatalist.get(position);
}
@Override
publiclonggetItemId(intposition){
returnposition;
}
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//此處參考網上的view緩存機制,示例demo不多說明
returnnull;
}
}
5. android中的一個列表,當點擊某一個列時,怎麼獲取該列的id
android中的列表通常就是指ListView列表控制項,ListView數據和視圖需要Adapter來處理。
點擊某列,獲取Item的ID方法:
使用自定義Adapter,即繼承BaseAdapter,並重寫BaseAdapter相關方法。
ListView 設置適配器,listView.setAdapter(adapter);
給ListView注冊條目點擊事件,listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id){//點擊條目的時候執行}
});
在onItemClick中處理條目點擊事件,以下是onItemClick的參數:
View就是條目視圖
position就是ListView的條目,即第幾條
id 就是Adapter返回的ID
6. android 怎麼做應用列表這樣的界面,最好使用布局文件完成
1、最外面用線性布局,屬性為垂直,margin
top屬性設置為10px,在這個布局包括了下面的2、3、4、5、6幾個布局
2、日常選項為textview,
3、時間用線性布局屬性為水平,margin
right屬性設置為10px,同時添加背景圖片屬性,裡面在放兩個textview分別是時間和2011-10-06
11:04,包含在時間的線性布局中
4、賬戶用線性布局屬性為水平,margin
right屬性設置為10px,同時添加背景圖片屬性,裡面在放兩個textview分別是賬戶和現金,包含在時間的賬戶的線性布局中
5、商家地點用線性布局屬性為水平,margin
right屬性設置為10px,同時添加背景圖片屬性,裡面在放兩個textview分別是商家地點和未指定,包含在商家/地點的線性布局中
6、備注用線性布局屬性為水平,margin
right屬性設置為10px,同時添加背景圖片屬性,裡面放一個textview是備注
這樣就可以做出來了
還不明白的話在給我留言吧~我把大概的代碼寫給你看~
7. Android如何設置列表的最大高度或最多可見個數,超出則以滾動顯示
最近在做開發的時候,遇到了這樣的一個需求:有一個聊天的模板列表,要求使用彈框的樣式展示,盡可能的做到高度自適應。於是我就開始了各種探索:
探索1>動態的的設置彈框的高度,發現無法准確的計算高度,不美觀;
探索2>將列表設置成固定高度,發現如果數目少的話就留有空白,不美觀;
探索3>動態的設置列表的高度,這個辦法還是可以的,使用recycleView做列表,發現高度很難控制,最終放棄了。
探索4>動態的設置列表的高度,只是使用listView實現,最終發現是符合需求的。
好了,閑話不說了,該是上硬菜的時候了。
使用方式
大致思路就是將具體的計算邏輯封裝自定義的列表內,這樣使用起來的就相當方便,其實就是計算出第一條item的高度,然後乘以最大item的個數就是最終列表展示的高度。當然這也有一個弊端,因為這個思路的前提是假設列表的每個item的高度差距不大,否則列表看著就不那麼美觀了。
8. android中像這樣的列表怎麼獲取其中每一行的點擊事件呢,就是點擊每一個選項就能轉到其他Activity的方法
android中的列表通常就是指ListView列表控制項,ListView數據和視圖需要Adapter來處理。點擊某列,獲取Item的ID方法:
使用自定義Adapter,即繼承BaseAdapter,並重寫BaseAdapter相關方法。
ListView 設置適配器,listView.setAdapter(adapter);
給ListView注冊條目點擊事件,listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ public void onItemClick (AdapterView<?> parent, View view, int position, long id){//點擊條目的時候執行}});
在onItemClick中處理條目點擊事件,以下是onItemClick的參數: View就是條目視圖
position就是ListView的條目,即第幾條
id 就是Adapter返回的ID</ol></ol>