gridview布局樣本二(通過simpleAdapter進行圖片等資料繫結)

來源:互聯網
上載者:User

 

上面的是最終,現在貼出檔案結構

 

 

 

main.xml代碼如下

<?xml version="1.0" encoding="utf-8"?><br /><!-- 主介面本身就是一個GridView,用於顯示night_layout.xml組件資訊 --><br /><GridView xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:id="@+id/gridView"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> android:numColumns="auto_fit"<br /> android:horizontalSpacing="10dp"<br /> android:verticalSpacing="10dp"<br /> android:columnWidth="90dp"<br /> android:stretchMode="columnWidth"<br /> android:gravity="center"<br /> ></p><p></GridView><br />

 

night_layout.xml

<?xml version="1.0" encoding="utf-8"?><br /><!--<br />該布局檔案相當於建立了一個新的組件,這個組件主要包含一個圖片以及一個描述性文本<br /> --><br /><RelativeLayout<br /> xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:paddingBottom="4dip"<br /> ><br /> <ImageView<br /> android:id="@+id/ItemImage"<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_centerHorizontal="true"<br /> ></ImageView><br /> <TextView<br /> android:id="@+id/ItemText"<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_centerHorizontal="true"<br /> android:layout_below="@id/ItemImage"<br /> android:text="androidText1"<br /> /><br /></RelativeLayout><br />

grid2.java

package cn.com.android.grid;</p><p>import java.util.ArrayList;<br />import java.util.HashMap;<br />import java.util.Map;<br />import java.util.Random;</p><p>import android.app.Activity;<br />import android.os.Bundle;<br />import android.view.View;<br />import android.widget.AdapterView;<br />import android.widget.GridView;<br />import android.widget.SimpleAdapter;<br />import android.widget.Toast;<br />import android.widget.AdapterView.OnItemClickListener;</p><p>public class grid2 extends Activity {<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);</p><p> setContentView(R.layout.main);<br /> // 擷取gridview對象<br /> GridView gridView = (GridView) findViewById(R.id.gridView);<br /> // 擷取資料來源<br /> ArrayList<HashMap<String, Object>> sourceList = getData(10);<br /> // 綁定資料來源<br /> gridView.setAdapter(new SimpleAdapter(this, sourceList, R.layout.night_layout,<br /> new String[]{"ItemImage","ItemText"}, new int[]{R.id.ItemImage,R.id.ItemText}));<br /> // 綁定事件觸發<br /> gridView.setOnItemClickListener(new OnItemClickListener(){</p><p>public void onItemClick(AdapterView<?> parent, View view,<br />int position, long id) {<br />HashMap<String, Object> hashMap = (HashMap<String, Object>) parent.getItemAtPosition(position);<br />Toast.makeText(grid2.this, hashMap.get("ItemText").toString(), Toast.LENGTH_SHORT).show();</p><p>}</p><p> });</p><p> }<br /> /**<br /> *創造資料來源,資料來源中存放的資料為hashmap對象,hashmap中存放著相應的圖片id以及描述文本資訊<br /> */<br /> private ArrayList<HashMap<String,Object>> getData(int number){<br />ArrayList<HashMap<String,Object>> sourceList = new ArrayList<HashMap<String,Object>>();<br />HashMap<String, Object> tempHashMap = new HashMap<String, Object>();<br /> for (int i = 0; i < number; i++) {<br />tempHashMap.put("ItemImage", R.drawable.icon);<br />tempHashMap.put("ItemText", "圖片"+i);<br />sourceList.add(tempHashMap);<br />tempHashMap = new HashMap<String, Object>();<br />}<br /> return sourceList;</p><p> }<br />}

作者廢話:

 

由代碼我們可以看得出,對於gridview相關的應用,我們一般需要一個2個布局檔案,一個布局檔案(如night_layout.xml)定義組件存放資料,而另一個組件(如main.xml)則作為容器存放組件。

對於我們來說,無非就是

第一步:寫好組件和容器,即定義好布局檔案

第二步:整理資料來源。一般的方法都是提供一個方法,方法內部放著對資料的詳細處理,方法返回整理好的資料來源

第三步:將資料來源綁定到組件。這裡通過setAdapter()進行的

第四步:為組件建立各種事件監聽,與使用者進行互動。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.