Gridview:

我们和以前一样用一个button来跳转页面

<Button

    android:id=”@+id/GridView”

    android:layout_width=”match_parent”

    android:layout_height=”wrap_content”

    android:layout_marginTop=”5dp”

    android:background=”#cccc00″

    android:text=”GridView”

    android:textAllCaps=”false”

    android:textSize=”25sp” />

其实这个GirdView和ListView很想只是有多和少了几个属性:

<GridView

    android:id=”@+id/gv”

    android:layout_width=”match_parent”

    android:layout_height=”wrap_content”

    android:horizontalSpacing=”20dp”

    android:numColumns=”3″

    android:verticalSpacing=”50dp”

    android:listSelector=”@drawable/liststyle”

    />

android:numColumns=“3”这个可以设置列数。他没有可以设置分隔线的地方。

新建一个Adpterjava文件然后去声明和你用像ListView的使用方法一样。

package com.example.myfirstapplication.GridView;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

import com.example.myfirstapplication.R;

public class GridviewAdpter extends BaseAdapter {

    private Context context;

    private LayoutInflater layoutInflater;

    public GridviewAdpter(Context context){

        this.context = context;

        layoutInflater = LayoutInflater.from(context);

    }

    @Override

    public int getCount() {

        return 10;

    }

    @Override

    public Object getItem(int position) {

        return null;

    }

    @Override

    public long getItemId(int position) {

        return 0;

    }

    static class ViewHold{

        public ImageView iv;

        public TextView tvname,tvcontent;

    }

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHold hold = null;

        if(convertView == null){

            convertView = layoutInflater.inflate(R.layout.once_gridview,null);

            hold = new ViewHold();

            hold.iv = convertView.findViewById(R.id.iv);

            hold.tvname = convertView.findViewById(R.id.tvname);

            hold.tvcontent = convertView.findViewById(R.id.tvcontent);

            convertView.setTag(hold);

        }else {

            hold = (ViewHold) convertView.getTag();

        }

        hold.tvname.setText(ダウンジャケット);

        return convertView;

    }

}

然后在储存一个xml文件来新建一个样式一样的东西:

<?xml version=”1.0″ encoding=”utf-8″?>

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

    android:layout_width=”match_parent”

    android:layout_height=”match_parent”

    android:orientation=”vertical”

    android:padding=”10dp”

    >

    <ImageView

        android:id=”@+id/iv”

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:src=”@drawable/yurongfu”

        android:scaleType=”centerInside”

        android:gravity=”center”

        />

    <TextView

        android:id=”@+id/tvname”

        android:layout_marginTop=”20dp”

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:gravity=”center”

        android:text=”製品名

        android:textSize=”20sp”

        android:textColor=”#000000″

        />

    <TextView

        android:id=”@+id/tvcontent”

        android:layout_marginTop=”20dp”

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:gravity=”center”

        android:text=”製品の内容

        android:textSize=”20sp”

        android:textColor=”#000000″

        />

</LinearLayout>

截屏2020-02-20下午1.48.39.png

回到gridview。java去声明,调用。

package com.example.myfirstapplication.GridView;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.GridView;

import android.widget.ListAdapter;

import android.widget.Toast;

import com.example.myfirstapplication.R;

public class gridviewActivity extends AppCompatActivity {

    private GridView gridView;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_gridview);

        gridView = findViewById(R.id.gv);

        gridView.setAdapter(new GridviewAdpter(gridviewActivity.this));

        //设置点击事件

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                Toast.makeText(gridviewActivity.this,“ItemClick”+position,Toast.LENGTH_LONG).show();

            }

        });

        gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            @Override

            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

                Toast.makeText(gridviewActivity.this,“ItemLongClick”+position,Toast.LENGTH_LONG).show();

                return true;

            }

        });

    }

}

我还设置了点击事件。

最后修改日期:2020年2月21日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。