Android成長日記-使用GridView顯示多行數據

本節將實現以下效果

clip_image002

Ps:看起來很不錯的樣子吧,而且很像九宮格/se

-----------------------------------------------------------------------

下面進入正題[s1] :

Step 1:新建Layout,里面創建GridView

<GridView

android:id="@+id/gridView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:numColumns="3"

android:horizontalSpacing="10dp"

android:verticalSpacing="10dp" >

</GridView>[s2]

Step 2:創建Java代碼

實現這一效果使用的是ListView

所以在需要涉及ListView的有關知識

ListView需要數據源,適配器,監聽器

① 考慮到GridView中含有圖片,文字,所以事先加入圖片,文字

private int[] icon={R.drawable.address_book, R.drawable.calendar,R.drawable.camera, R.drawable.clock, R.drawable.games_control,R.drawable.messenger, R.drawable.ringtone, R.drawable.settings, R.drawable.speech_balloon, R.drawable.weather,

R.drawable.world, R.drawable.youtube};

private String[] iconName={"聯系人", "日歷", "照相機", "時鐘", "游戲", "短信", "鈴聲", "設置","語音", "天氣", "瀏覽器", "Youtube"};

② 新建適配器

---由于含有圖片,文字,所以使用的是SimpleAdapter適配器

Ps:SimpleAdapter的參數講解

SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

* SimpleAdapter()

* ---->>context:上下文

* ---->data:數據源 List<? extends Map<String, ?>> data,一個Map所組成的List集合

* 每一個Map都會對應ListView列表中的一行

* 每一個Map(鍵~值對)中的鍵必須包含所有在from中所指定的鍵

* ---->resource:列表項布局文件的ID

* ---->from:Map中的鍵名

* ---->to:綁定數據視圖中的ID,與from成對應關系

adapter=new SimpleAdapter(this, getData(), R.layout.view_grid[s3] , new String[]{"image","text"}, new int[]{R.id.image,R.id.text});//新建適配器

gridView.setAdapter(adapter);

?

ps:R.layout.view_grid的樣式代碼

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center"

android:background="#000000">

<ImageView

android:id="@+id/image"

android:src="@drawable/ic_launcher"

android:layout_width="60dp"

android:layout_height="60dp"/>

<TextView

android:id="@+id/text"

android:layout_marginTop="5dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#ffffff"

android:text="文字"/>

</LinearLayout>

③ 添加數據源

private List<Map<String,Object>>dataList;//聲明

dataList=new ArrayList<Map<String,Object>>();

private List<Map<String,Object>> getData() {

for(int i=0;i<icon.length;i++){

Map<String,Object>map=new HashMap<String,Object>();

map.put("image", icon[i]);

map.put("text", iconName[i]);

dataList.add(map);

}

return dataList;

}

④ 創建監聽器

實現接口

public class View extends Activity implements OnItemClickListener

gridView.setOnItemClickListener(this);

⑤ 實現監聽事件

public void onItemClick(AdapterView<?> arg0, android.view.View arg1,

int position, long id) {

Toast.makeText(this, "我是"+iconName[position],Toast.LENGTH_SHORT).show(); }


[s1] /*

* 1.準備數據源

* 2.新建適配<SimpleAdapter>

* 3.GridView加載適配器

* 4.GridView配置事件監聽器(onItemClickListener)

*/

[s2] android:numColumns="" 每一行顯示多少列android:horizontalSpacing="" 兩列之間的間距

android:verticalSpacing="" 兩行之間的間距

[s3]這是新建的Layout

(也就是顯示的文字和圖片的樣式)

轉載于:https://www.cnblogs.com/boy1025/p/4301996.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257616.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257616.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

奪命雷公狗---微信開發39----微信語言識別接口1

語音識別接口的基本介紹 注意&#xff1a; 由于客戶端緩存&#xff0c;開發者開啟或者關閉語音識別功能&#xff0c;對新關注者立即生效&#xff0c;對已關注用戶需要24小時生效&#xff0c;開發者可以從新關注帳號進行測試。 我們可以在測試號下方的體驗接口權限表里面找到“接…

Codeforces 803E--Roma and Poker (DP)

原題鏈接&#xff1a;http://codeforces.com/problemset/problem/803/E 題意&#xff1a;給一個n長度的字符串&#xff0c;其中?可以替換成D、W、L中的任意一種&#xff0c;D等價于0, W等價于1、L等價于-1。輸出所有?被替換掉后&#xff0c;W和L的數目之差為k&#xff0c;且任…

java構造塊_java中的靜態代碼塊、構造代碼塊、構造方法詳解

運行下面這段代碼&#xff0c;觀察其結果&#xff1a;package com.test;public class HelloB extends HelloA {public HelloB() {}{System.out.println("Im B class");}static {System.out.println("static B");}public static void main(String[] args) {…

推薦一個不錯的 Chrome 插件,百變皮膚,還可以去廣告

今天在這里給大家推薦一個非常棒&#xff0c;非常不錯的 Chrome 插件&#xff0c;功能實在是強大又好玩&#xff0c;讓你在瀏覽器中可以如孫悟空一樣72變&#xff0c;再不濟&#xff0c;如果你不會用&#xff0c;不會自定義寫 CSS 樣式&#xff0c;也能夠做到如豬八戒般 36 變。…

【轉】DB2 常用命令

1、 打開命令行窗口   #db2cmd 2、 打開控制中心   # db2cmd db2cc 3、 打開命令編輯器  db2cmd db2ce 操作數據庫命令 4、 啟動數據庫實例   #db2start 5、 停止數據庫實例   #db2stop  如果你不能停止數據庫由于激活的連接&#xff0c;在運行db2stop前執行db2 force ap…

c#調用R

R.NET使用文檔 介紹 本頁面涉及R.NET1.5.13。 1.5.13版本在功能上等同于1.5.12&#xff0c;但可作為一個包在NuGet.org上獲得。 R.NET使.NET框架與R統計語言在同一進程進行互操作。 R.NET需要.NET Framework 4的并有R環境中安裝的本地的DLL。您可以使用R.NET用在.NET的任何語言…

java applet 文本框_Java Applet 文本框 TextField 小例 | 學步園

一個Java Applet程序中必須有一個類是Applet類的子類&#xff0c;成為該子類是Java Applet的主類&#xff0c; 并且必須是public class。 Applet類是包java.applet中的一個類&#xff0c; 同時它還是包java.awt中Container(容器)類的子類。因此Java Applet的主類的實例是一個容…

python界面工具pyqt基礎教程

這里有一份很詳細的中文翻譯供我們學習pyqt&#xff0c;很適合初學者和中級學者&#xff0c;直接丟傳送門&#xff0c;不多說 http://www.qaulau.com/books/PyQt4_Tutorial/introduction.html轉載于:https://www.cnblogs.com/semishigure/p/7451689.html

博客園客戶端(睡睡版iphone)源碼

1.關于 https://itunes.apple.com/us/app/shui-shui-bo-ke-yuan/id512394144?ls1&mt8 項目目前為V3.0版&#xff0c;也是我開發的最新版&#xff0c;目前已無法在appstore下載&#xff0c;項目介紹&#xff1a;http://www.cnblogs.com/bandy/p/3509482.html 2.現狀 目前本…

Spring MVC不要在@Service bean中保存狀態

先看這么一段代碼&#xff1a; Service public class AccountService {private String message;public void foo1() {if (true) {this.message "a";} else {this.message "b";}}public void foo2() {// 改動this.message的代碼...// ... ...} }假設你打算…

java class 關鍵字_java關鍵字及其作用

一、 關鍵字總覽:訪問控制privateprotectedpublic類,方法和變量修飾符abstractclassextendsfinalimplementsinterfacenativenewstaticstrictfpsynchronizedtransientvolatile程序控制breakcontinuereturndowhileifelseforinstanceofswitchcasedefault錯誤處理trycatchthrowthro…

3.過濾數據 ---SQL

一、使用WHERE子句 SELECT prod_name, prod_price FROM Products WHERE prod_price 3.49; 輸出▼ prod_name prod_price ------------------- ---------- Fish bean bag toy 3.49 Bird bean bag toy 3.49 Rabbit bean bag toy 3.49 分析▼ 這條語句從products表中檢索兩個列&a…

IOS-C語言第8天,Struct (結構體)

轉載于:https://www.cnblogs.com/xiangrongsu/p/4309160.html

Win2D 入門教程 VB 中文版 - 防止內存泄漏

避免內存泄漏 本文從微軟官方文檔翻譯 http://microsoft.github.io/Win2D/html/RefCycles.htm 如果文檔有問題&#xff0c;可以在 https://github.com/Nukepayload2/Win2dDocVB發 Issue&#xff0c;也可以直接回復。 當在托管的 XAML 應用程序中使用 Win2D 控件&#xff0c;需要…

java concurrent 鎖_java并發機制鎖的類型和實現

synchronized 和 volatile&#xff0c;是最基礎的兩個鎖&#xff01;volatile是輕量級鎖&#xff0c;它在多核處理器開發中保證了共享變量的可見性。即當一個線程修改一個共享變量時&#xff0c;其他線程能夠讀到這個修改的值。它比syncronized使用和成本更低。要說volatile的實…

JAXB和XStream比較

這兩東東本質上是有差別的&#xff0c;JAXB稱為OX binding工具&#xff0c;XStream應該算序列化工具&#xff0c;但OX binding工具也會marshall和unmarshall&#xff0c;所以包含了序列化這一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化&#xff0c;那就簡單…

【起航計劃 011】2015 起航計劃 Android APIDemo的魔鬼步伐 10 App-Activity-Reorder Activities 后退棧 Intent FLAG...

Reorder Activities 示例有四個相關的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour。其中ReorderOnLaunch為主Activity&#xff0c;ReorderOnLaunch啟動ReorderTwo &#xff0c;ReorderTwo啟動 ReorderThree&#xff0c;ReorderThree啟動 ReorderFour。…

java date dateformat_java中Date與DateFormat的格式輸出

一、DateFormatjava.text.DateFormat使用 getDateInstance 來獲取該國家/地區的標準日期格式。另外還提供了一些其他靜態工廠方法。使用 getTimeInstance 可獲取該國家/地區的時間格式。使用 getDateTimeInstance 可獲取日期和時間格式。可以將不同選項傳入這些工廠方法&#x…

spartan6不能直接把時鐘連到IO上

1、問題的提出&#xff1a;spartan6中不允許時鐘信號直接連到IO口上面&#xff1f; 2、解決辦法&#xff1a;ODDR2的使用 ODDR2Primitive: Double Data Rate Output D Flip-Flop with Optional Data Alignment, Clock Enable and Programmable Synchronous or Asynchronous Set…

STL容器及適配器

STL容器 1.序列式容器 &#xff1a; vector&#xff0c;deque&#xff0c;list。 每個元素都有固定的位置&#xff08;取決于插入的時機和位置&#xff0c;與元素值無關&#xff09;。 vector 特點&#xff1a; 將一個元素置于一個動態數組中加以管理&#xff0c;可以隨機存取元…