當前位置:首頁 » 安卓系統 » androidsetadapter

androidsetadapter

發布時間: 2024-06-16 03:15:51

『壹』 Android控制項RecyclerView和ListView的異同

異同比較:

  • 相同點:都可以實現垂直方向的滾動列表效果;都需要使用適配器(Adapter)

  • 不同點:ListView只能實現垂直滾動列表,但RecyclerView還可以實現水平、多列、跨列等復雜的滾動列表;RecyclerView不但需要Adapter,還必須有LayoutManager,用法更復雜一些。

  • 總結:ListView能做到的,RecyclerView都能做到,反之則不行。RecyclerView用法比ListView復雜。

一般用法:

  • ListView用法

    ListView listView = (ListView) findViewById(R.id.list_view);
    listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));

  • RecyclerView用法

    recyclerView = findView(R.id.id_recyclerview);

    //設置布局管理器

    recyclerView.setLayoutManager(layout);

    //設置adapter

    recyclerView.setAdapter(adapter) ;

    //設置Item增加、移除動畫

    recyclerView.setItemAnimator(new DefaultItemAnimator());

    //添加分割線

    recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL_LIST));

『貳』 android 里怎麼用adapter寫下拉菜單選擇

所使用的工具:電腦

開發工具:eclipse for Android , Android Studio

用adapter 寫下拉菜單需要我們自己進行自定義,具體步驟如下:


1、自定義類,類成員與需要顯示的欄位一致;

java">publicclassManufacture{
privateStringname;

publicManufacture(Stringname){
super();
this.name=name;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}
}

2、自定義adapter並繼承自BaseAdapter實現相應方法,下面是貼出的代碼示例:

{
privateList<Manufacture>mList;
privateContextcontext;
//創建有參構造,參數需要傳入兩個1.自定義類類型的List,上下文參數
publicMnufactureAdapter(List<Manufacture>mList,Contextcontext){
super();
this.mList=mList;
this.context=context;
}
//返回長度位所定義List的長度
@Override
publicintgetCount(){
returnmList.size();
}
//返回位置為自定義list當前位置
@Override
publicObjectgetItem(intposition){
returnmList.get(position)
;
}
//返回條目的ID
@Override
publiclonggetItemId(intposition){
returnposition;
}
//這里getView需方法需要重點說明和注意:
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//創建一個LayoutInflater並傳入上下文
LayoutInflaterlinflater=LayoutInflater.from(context);
//添加自定義item布局到convertView;(item內容和樣式通過自定義方式實現)
convertView=linflater.inflate(R.layout.spinner_item_layout,null);
//初始化Item中控制項
TextViewtextView=(TextView)convertView.findViewById(R.id.manufacture_list);
//設置控制項顯示內容
textView.setText(mList.get(position).getName());

returnconvertView;
}

}

3、在activity中需要添加如下代碼:

//初始化布局文件中的spinner
SpinnermSpinner=(Spinner)findViewById(R.id.spinner1);
//初始化自定義的List,並往裡面添加數據
List<Manufacture>manufacture=newArrayList<Manufacture>();
接著就是添加數據,在項目中我是添加的從網路上下載的數據解析之後進行添加的,具體的添加方式根據具體需要進行添加,我把自己的貼在下面供大家參考:
for(inti=0;i<list.size();i++){
//添加數據源
manufacture.add(newManufacture(list.get(i).getName()));
}
//實例化一個之前自定義的adapter並向裡面添加數據
MnufactureAdaptermadapter=newMnufactureAdapter(manufacture,ProctManageActivity.this);
參數說明:第一個參數是添加數據源後的List,第二個是當前activity的上下文。
最後一步,向spinner裡面添加數據源
mSpinner.setAdapter(madapter);

『叄』 android透明區域點擊穿透怎麼實現

一個解決方法是,可以將這些耗時的操作放到recyclerview.setAdapter(adapter)之前運行,運行完後再將需要的參數傳入Adapter里,此處重寫一個adapter類繼承Adapter就可以了。解決後運行,滑動恢復了流暢。。

『肆』 android如何在adapter更新數據

data = new ArrayList<Info>(); //存放數據的列表,以後只更新它就可以了
adapter = new page_ListAdapter(this, data); //適配器,一個類,繼承自BaseAdapter
listview.setAdapter(adapter); //列表視圖上綁定適配器
以上幾步就建立了數據與控制項之間的關,以後更新data就可以了,界面會自動刷新。

附:適配器類在大體如下所示:
class page_ListAdapter extends BaseAdapter {
public page_ListAdapter(Activity context, List<Info> list) {
}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

//這里構建每一行的界面
}
}

熱點內容
ccs支持gbk編譯嗎 發布:2024-12-02 15:02:09 瀏覽:479
安卓系統定位功能在哪裡 發布:2024-12-02 15:01:28 瀏覽:636
c編譯ios 發布:2024-12-02 14:39:39 瀏覽:383
gta5存儲 發布:2024-12-02 14:36:44 瀏覽:484
js上傳base64的圖片 發布:2024-12-02 14:31:20 瀏覽:958
開發票演算法 發布:2024-12-02 14:12:19 瀏覽:253
天龍腳本免 發布:2024-12-02 14:11:34 瀏覽:844
求生之路2怎麼不進rpg伺服器 發布:2024-12-02 13:47:22 瀏覽:73
旺旺密碼怎麼破解 發布:2024-12-02 13:47:21 瀏覽:970
緩存垃圾怎麼清理 發布:2024-12-02 13:41:52 瀏覽:120