android自定義對話框_第1頁
android自定義對話框_第2頁
android自定義對話框_第3頁
android自定義對話框_第4頁
android自定義對話框_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、接下來我們來看看如何在對話框中嵌套一個Lis tView。首先,需要一個布局文件,布局文件里只創(chuàng)建一個Lis tView,如下代碼?xml version二1.0 encoding二utf-8?LinearLayout xmlns:android= HYPERLINK /apk/res/android /apk/res/android android:orientation二vertical android:layout_width=fill_parent android:layout_height二fill_parent android:scrollbars=vertical/LinearL

2、ayoutJava代碼如下private void ShowLoginDialogOBuilder builder = new AlertDialog.Builder(Tab1Activity.this);builder.se tTi tle(:選擇城市);Layoutlnflater factory 二 Layoutlnflater.from(Tab1Activity.this);View dialogView = factory. inflate(R.layout.dialogcity, null); lis tCity =(Lis tV iew)dialogView.findViewBy

3、Id(R.id.lis tCity); Ge tCit y();builder.setView(dialogView);builder.show();priva te void GetCityOSys tem.o ut .pri ntln (asd);newArrayListHashMapString,StringlistData=newArrayListHashMapString,String();HashMapString, String hmltem = new HashMapString, String();hmlt em.p ut( ci ty,北京);lis tDat a.add(

4、hm It em);hmltem = new HashMapString, String();hmIt em.p ut( ci ty,上海);lis tDat a.add(hm It em);hmltem = new HashMapString, String();hmltem.put(city,深圳);lis tDat a.add(hm It em);hmltem = new HashMapString, String();hmIt em.p ut( ci ty,天津);lis tDat a.add(hm It em);hmItem = new HashMapString, String()

5、;hmIt em.p ut( ci ty,南京);lis tDat a.add(hm It em);hmItem = new HashMapString, String();hmIt em.p ut( ci ty,武漢);lis tDat a.add(hm It em);hmItem = new HashMapString, String();hmIt em.p ut( ci ty,江蘇);lis tDat a.add(hm It em);hmItem = new HashMapString, String(); hmIt em.p ut( ci ty,寧波);lis tDat a.add(h

6、m It em);SimpleAdapter sim = new SimpleAdapter(this,listData,android.R.layo ut .simple_lis t_it em_1,newStri ngci ty ,newint android.R.id .textl);listCity .setAdapter(sim);直接調用ShowLoginDialog方法即可。注意標注的代碼,需要先獲取ListView。這里 已經用到了 ListView,如果不太懂下邊就將ListView,大家注意看。ListView上邊已經展示過它運行的效果了,這里就不展示運行效果了。那么要使用

7、ListView需要哪些步驟呢?舉一個例子,可能不太恰當冰箱里沒有雞蛋了,我們從家里提了一個籃子去超市買雞蛋。就是這樣的一個過程。我 們來分解下這個步驟冰箱=展示數據=Lis tView超市里的雞蛋=數據=ArrayListE泛型集合籃子= 適配器=SimpleAdap ter我們應該將雞蛋(ArrayListE)裝到籃子里(SimpleAdapter)然后提回家放到 冰箱里(ListView)分解完步驟后,那么我們看看如何用代碼實現(xiàn)這個過程。Lis tView userLis t; /聲明一個 Lis tView 對象(冰箱)userList = (ListView)findViewById

8、(R.id.listUserInfo); /獲取布局文件中的 ListView控件賦值給ListView對象ArrayListHashMapString,StringlistData=newArrayLis tHashMapS tring,S tring(); /數據源(超市裝雞蛋的盒子)HashMapS tri ng, Stri nghmItem = new HashMapS tri ng, Stri ng(); / 需要一個HashMap鍵值對(每一個雞蛋)hmlt em.p ut( userName,張三);hmltem.put(userPhone, 1234567890);lis tD

9、a ta.add(hml tem); /將雞蛋裝到數據源中String s = new String2; /列和鍵值對中的鍵一一對應每個鍵值對應該是一 樣的列數s0 = userName;s1 = userPhone;int i = new int 2; /用什么控件來裝載上邊St ring集合中的列和上邊的 St ring數組也是一一對應的i0 = android.R.id .text1;i1 = android.R.id .text2;SimpleAdapter sim = newSimpleAdapter(this,listData,android.R.layo ut .simple_l

10、is t_it em_1, s, i); /這就是我們的籃子userLis t.se tAdap ter(sim); /將籃子中的雞蛋裝到冰箱中:)完整的代碼如下package TSD.Jason.Example;import java, util.ArrayList;import java, util.HashMap;import java, util.List;impo rt android.app.Ac tivity;impo rt android.os.Bundle;impo rt android.view.View;import android.widget.AdapterView;

11、impo rt android.widge t.Lis tV iew;import android.widget.SimpleAdapter;/*Lis tView基本使用方法*使用ListView的基本步驟1.準備ListView要顯示的數據;ArrayListHashMapString,String listData = newArrayListHashMapString,String();*2使用一維或多維動態(tài)數組保存數據;HashMapString, String hmltem = new HashMapString, String();hmlt em.p ut( userName,張

12、三);hmltem.put(userPhone, 1234567890);*3.構建適配器,簡單地來說,適配器就是Item數組,動態(tài)數組有多少元素就 生成多少個Item;SimpleAdapter simpleAdapter;*數據綁定的類*參數解釋*第一個con tex t,很明顯大家根據英文可以知道是上下文的意思,它官方的意思是: SimpleAdapter所要運行關聯(lián)到的視圖,這個是什么呢?就是你這個SimpleAdapter所在的 Activity (般而言),所以這個參數一般是this第二個是一個泛型只要是一個List就行,這一般會想到是ArrayList,而他內部存儲 的則是Map

13、或者繼承自Map的對象,比如HashMap,這些語法都是Java的基本語法,不再 詳述了!這里呢是作為數據源,而且每一個ArraList中的一行就代表著呈現(xiàn)出來的一行, Map的鍵就是這一行的列名,值也是有列名的。第三個資源文件,就是說要加載這個兩列所需要的視圖資源文件,你可以左邊一個TextView右邊一個TextView,目的在于呈現(xiàn)左右兩列的值!第四個參數是一個數組,主要是將Map對象中的名稱映射到列名,一一對應第五個是將第四個參數的值一一對象的顯示(一一對應)在接下來的int形的id數組 中,這個id數組就是LayOut的xml文件中命名id形成的唯一的int型標識符con tex t

14、關聯(lián)SimpleAdap ter運行著的視圖的上下文。data個Map的列表。在列表中的每個條目對應列表中的一行,應該包含所有在from中指定的條目resource一個定義列表項目的視圖布局的資源唯一標識。布局文件將至少應包含哪些在to中定義了的名稱。from一個將被添加到Map上關聯(lián)每一個項目的列名稱的列表to應該在參數from顯示列的視圖。這些應該全是TextView。在列表中最初的N視圖是從參數from中最初的N列獲取的值。*4.把 適配器 添加到ListView,并顯示出來。author Administrator*/public class ListViewActivity exte

15、nds Activity ListView userList;Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedlnstanceState);setContentV iew(R.layo ut.listv iew);userLis t 二(Lis tV iew)findViewById(R.id.lis tUserlnfo);newArrayListHashMapString,StringlistData=newArrayListHashMapString,String();HashM

16、apString, String hmltem = new HashMapString, String();hmlt em.p ut( userName,張三);hmltem.put(userPhone, 1234567890);lis tDat a.add(hm It em);hmltem = new HashMapString, String();hmIt em.p ut( userName,李四);hmltem.put(userPhone, 981234502);lis tDat a.add(hm It em);hmltem = new HashMapString, String();h

17、mIt em.p ut( userName,王五); hmItem.put(userPhone, 5622435566221); lis tDat a.add(hm It em);/SimpleAdapter simpleAdapter = new SimpleAdapter(this, listData, R.layo ut.textv iew it em,newStri nguserName,userPhone,newint R.id .txt UserName,R.id .txt UserPhone);/SimpleAdapter simpleAdapter = new SimpleAd

18、apter(this, listData, android.R.layout.simple_list_item_1, new StringuserName,userPhone, new int android.R.id .textl ,android.R.id .text 2);/SimpleAdapter simpleAdapter = new SimpleAdapter(this, listData, android.R.layout.simple_list_item_2, new StringuserName,userPhone, new int android.R.id .textl

19、,android.R.id .text 2);Stri ng s = new Stri ng2;s0 = userName;s1 = userPhone;int i 二 new int 2;i0 = android.R.id .text1;i1 = android.R.id .text2;SimpleAdapter sim = newSimpleAdapter(this,listData,android.R.layo ut .simple_lis t_it em_1, s, i);userList.setAdapter(sim);/列表項單擊事件userList.setOnltemClickL

20、istener(newListView.OnitemClickListener() Overridepublic void onItemClick(AdapterView?argO, View arg1, int arg2, long arg3) Sys tem.o ut .pri ntl n(arg2);Sys tem.o ut .pri ntl n(arg3););/列表項選中事件userList.setOnItemSelectedListener(newListView.OnitemSelectedListener() Overridepublic void onitemSelected

21、(AdapterView? argO, View argl,int arg2, long arg3) / TODO Autogenerated method stubSystem.out.println(selected +arg2);System.out.println(selected +arg3);Overridepublic void onNothingSelected(AdapterView? argO) / TODO Autogenerated method stub);/列表項長按事件userList.setOnltemLongClickListener(newListView.

22、OnitemLongClickListener() 0verridepublic boolean onitemLongClick(AdapterView? argO, View argl,int arg2, long arg3) System.out.println(long + arg2);System.out.println(long + arg3);return true;);上邊注釋的三句話第一句是我們可以自定義布局文件展示數據第二句我們可以用內置的布局文件來展示第三句和第二句一樣,但是效果不一樣,大家運行看看就明白了GridView類似與手機主菜單中展示的效果,如圖網格視圖控件和我們

23、的ListView操作很像,上邊已經解釋過了,這里直接貼代碼了package TSD.Jason.Example;import java, util.ArrayList;import java, util.HashMap;impo rt android.app.Ac tivity;impo rt android.os.Bundle;import android.widget.GridView;import android.widget.SimpleAdapter;public class GridViewActivity extends Activity /定義整型數組即圖片源private

24、Integermlmagelds =R.drawable.imgl,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.imgl,;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContent

25、View(R.layout .gridview);GridView gridview = (GridView) findViewById(R.id.gridview);/生成動態(tài)數組,并且轉入數據newArrayListHashMapString,ObjectlstImageItemnewArrayListHashMapString, Object();for (int i 二 0; i 9; i+) HashMapString, Object map = new HashMapString, Object();map.put(ItemImage, mImageIdsi);/ 添加圖像資源的

26、IDmap.put(ItemText,NO. + String.valueOf(i);/ 按序號做ItemTextlstI mage It em.add(map);SimpleAdapter simple = new SimpleAdapter(this, lstImageItem,R.layo ut .gridview it em,new String ItemImage, ItemText , new int R.id. ItemImage, R.id. ItemText );gridview.setAdapter(simple);三、類似 ListView 的 AlertDialog用 setItems(CharSequence items, final OnClickListener listener)方法來實現(xiàn)類似 ListView 的 AlertDialog第一個參數是要顯示的數據的數組,第二個參數是點擊某個item的觸發(fā)事件import android.app.Activity;import android.app.AlertDialog;3import android.app.Dialog;import android.content.D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論