<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GridView 使用詳解

          共 1576字,需瀏覽 4分鐘

           ·

          2020-12-07 13:16

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點(diǎn):

          一、GridView 簡介
          二、 GridView 主要使用方法
          三、 GridView 使用Demo

          一、GridView 簡介

          在學(xué)習(xí)GridView 之前,我們需要先了解GridView的繼承關(guān)系,
          GridView的繼承關(guān)系如下:

          java.lang.Object
          ? android.view.View
          ? android.view.ViewGroup
          ? android.widget.AdapterView
          ? android.widget.AbsListView
          ? android.widget.GridView

          GridView?跟ListView?很類似,Listview?主要以列表形式顯示數(shù)據(jù),GridView?則是以網(wǎng)格形式顯示數(shù)據(jù),掌握ListView?使用方法后,會(huì)很輕松的掌握GridView的使用方法。

          二、 GridView 主要使用方法

          GridView主要通過使用自定義BaseAdapter?來適配數(shù)據(jù),進(jìn)而顯示到GridView中。主要使用方法如下:

          1. 準(zhǔn)備數(shù)據(jù)源

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

          2. 為數(shù)據(jù)源設(shè)置適配器

                  MyAdapter adapter = new MyAdapter();

          3. 將適配過后點(diǎn)數(shù)據(jù)顯示在GridView 上

                  gridView.setAdapter(adapter);

          三、 GridView 使用Demo

          1.實(shí)現(xiàn)效果如下

          GridView

          • 實(shí)現(xiàn)代碼如下

              private GridView gridView;
          private List<Map<String, Object>> list;
          private int images[] = { R.drawable.gril, R.drawable.ic_launcher,
          R.drawable.gril, R.drawable.ic_launcher, R.drawable.gril,
          R.drawable.ic_launcher, R.drawable.gril, R.drawable.ic_launcher,
          R.drawable.gril };

          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_grid_view_method);
          gridView = (GridView) findViewById(R.id.gv);

          // 1. 準(zhǔn)備數(shù)據(jù)源
          list = new ArrayList<Map<String, Object>>();
          for (int i = 0; i < images.length; i++) {
          Map<String, Object> map = new HashMap<String, Object>();
          map.put("image", images[i]);
          map.put("text", "圖片" + i);
          list.add(map);

          }

          // 2.為數(shù)據(jù)源設(shè)置適配器
          MyAdapter adapter = new MyAdapter();
          // 3.將適配過后點(diǎn)數(shù)據(jù)顯示在GridView 上
          gridView.setAdapter(adapter);
          // item點(diǎn)擊事件處理
          gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
          //

          Toast.makeText(GridViewMethod.this,
          list.get(position).get("text").toString(),
          Toast.LENGTH_SHORT).show();
          }
          });
          }

          class MyAdapter extends BaseAdapter {

          @Override
          public int getCount() {
          return list.size();
          }

          @Override
          public Object getItem(int position) {
          return list.get(position);
          }

          @Override
          public long getItemId(int position) {
          return position;
          }

          @Override
          public View getView(int position, View convertView, ViewGroup parent) {
          ViewHolder holder = null;
          if (convertView == null) {
          // 第一次加載創(chuàng)建View,其余復(fù)用 View
          convertView = LayoutInflater.from(GridViewMethod.this).inflate(
          R.layout.gridview_item_img_tv, null);
          holder = new ViewHolder();
          holder.imageView = (ImageView) convertView
          .findViewById(R.id.grid_img);
          holder.textView = (TextView) convertView
          .findViewById(R.id.grid_tv);
          // 打標(biāo)簽
          convertView.setTag(holder);

          } else {
          // 從標(biāo)簽中獲取數(shù)據(jù)
          holder = (ViewHolder) convertView.getTag();
          }

          // 根據(jù)key值設(shè)置不同數(shù)據(jù)內(nèi)容
          holder.imageView.setImageResource((Integer) list.get(position).get(
          "image"));
          holder.textView.setText((String) list.get(position).get("text"));

          return convertView;
          }
          }

          class ViewHolder {
          ImageView imageView;
          TextView textView;

          }


          2.GridView 布局如下


          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context="com.android.program.programandroid.ListView.GridViewMethod">



          <GridView
          android:id="@+id/gv"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_gravity="center"
          android:gravity="center"
          android:horizontalSpacing="10dp"
          android:numColumns="3"
          android:verticalSpacing="10dp" />

          LinearLayout>

          3.item 布局 如下


          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">


          <ImageView
          android:id="@+id/grid_img"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_margin="5dp"
          android:gravity="center_horizontal"
          android:src="@drawable/ic_launcher" />


          <TextView
          android:id="@+id/grid_tv"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_margin="5dp"
          android:textColor="@android:color/darker_gray"
          android:text="test"
          android:gravity="center_horizontal"
          android:textSize="25sp" />

          LinearLayout>

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除。同時(shí)感謝您的閱讀,期待您的關(guān)注。

          點(diǎn)個(gè)在看,方便您使用時(shí)快速查找!

          瀏覽 74
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人色色色 | A片网站免费黄色 | 一本色道久久88亚洲综合加勒比 | 国产内射免费在线观看 | 4438AV |