編輯:關於Android編程
說明:
視圖列表(ListView和ListActivity)與AutoComplete、Spinner類似,它們都需要一個供顯示的列表項,可以需要借助於內容Adapter提供顯示列表項
創建ListView有兩種方式:
(1)直接使用ListView進行創建
(2)Activity繼承ListActivity
ListView的常用XML屬性
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+z8LD5rfWsfDTw8G91ta3vcq9tLS9qExpc3RWaWV3PC9wPgo8cD4gt73KvdK7o7rWsb3TyrnTw0xpc3RWaWV3vfjQ0LS0vag8L3A+CjxwPqOoMaOpICAgbWFpbl9hY3Rpdml0eS54bWw8YnI+CjwvcD4KPHA+z8LD5rK8vtbBvbj2bGlzdFZpZXejrNK7uPa7+dPayv3X6aOs0ru49rv509pBZGFwdGVyICAgICAgICAgICAgIDxicj4KPC9wPgo8cD48L3A+CjxwcmUgY2xhc3M9"brush:java;">
(2) strings.xml 存放listView1內容數組
ListView Settings Hello world! - 漢語
- 韓語
- 英語
- 日語
- 葡語
- 俄語
(3) MainActivity.java
步驟:
1、獲取布局ListView
2、封裝顯示內容list或數組
3、構建適配器Adapter
4、給ListView添加適配器
package com.example.listview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private ListView listView2 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取ListView listView2 = (ListView) findViewById(R.id.listView2); //定義數組 String arr[] = new String[]{"中國","韓國","日本","美國","葡萄牙","俄羅斯"}; //聲明適配器 //this 上下文 //android.R.layout.simple_list_item_checked 列表樣式 //arr 顯示內容 (數組或list集合) ArrayAdapterarrayAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_checked, arr); //listView添加適配器 listView2.setAdapter(arrayAdapter); listView2.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView> parent, View view, int position, long id) { Log.i("listView", parent.getItemAtPosition(position).toString()); } }); } }
如果想要自定義列表,列表項顯示多個組件。我們可以用SimpleAdapter來自定義我們的列表。
(1) main_activity.xml
布局了ImageView,TextView 組件,用於顯示列表內容
package com.example.listviews; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.ListView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { private ListView listView = null; //定義ListView組件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取listView組件 listView = (ListView) findViewById(R.id.listView); //初始化基礎數據 String name[] = new String[]{"張三","李四","王五","張飛"}; String phone[] = new String[]{"14313426573","15908263541","18012345678","13423456789"}; int img [] = new int[]{R.drawable.name01,R.drawable.name02,R.drawable.name03,R.drawable.name04}; //封裝list集合數據 List
除了SimpleAdapter之外,我們還可以重寫BaseAdapter的getView方法作為列表的列表項 。 有興趣的同學可以動手寫寫BaseAdapter
方式二:Activity繼承ListActivity
注意:
ListActivity的默認布局由一個位於屏幕中心的全屏列表構成。如果你不想使用默認的布局,可以在onCreate()方法中通過setContentView()方法設定你自己的布局。如果指定你自己定制的布局,你的布局中必須包含一個id為"@id/android:list"的ListView。 若你還指定了一個id為"@id/android:empty"的view,當ListView中沒有數據要顯示時,這個view就會被顯示,同時ListView會被隱藏
(1)main_activity.xml
布局了一個ListView和TextView,TextView的id為@id/android:empty,當ListView中沒有數據要顯示時,這個TextView就會被顯示
package com.example.listactivity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String arr[] = new String[]{"中國","韓國","日本","美國","葡萄牙","俄羅斯"}; //設置適配器 ArrayAdapterarrayAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_checked, arr); //給ListActivity添加適配器 setListAdapter(arrayAdapter); } }
如果ListView沒有內容,則顯示TextView。如下
方式一和方式二的效果完全一樣,不同的是,一個給ListView組件添加適配器,一個給ListActivity類添加適配器而已。
最近一直關注一些比較有名的app,像美團、58、趕集網、淘寶等等。主要目的就是學習下目前一些常用的技術,模擬一下它們的比較炫的界面來鞏固下知識,我發現美團、5
最近項目上需要實現藍牙傳輸apk的一個功能,能夠搜索周圍的藍牙手機並分享文件。從需求上講android手機自帶的藍牙傳輸模塊就可以滿足需要了,實現也很簡單。不過讓人頭疼的
電腦版qq能夠創建討論組,那手機qq呢?答案是肯定的,手機qq討論組怎麼建?手機qq討論組怎麼刪人?下面我們就來看看相關的操作吧!手機qq討論組怎麼建1、首
前幾天做的一個仿To圈個人資料界面的實現效果下面是To圈的效果Gif圖:做這個東西其實也花了一下午的時間,一開始思路一直沒理清楚,就開始盲目的去做,結果反而事倍功半。以後