close

1. add a button in activity_main.xml

2. Add a new layout of gridview page, which is called activity_gridview.xml

3. Add a new "gridviewpackage under com.example.gridviewexample 

4. Add a new GridViewActivity class which extends AppCompatActivity

public class GridViewActivity extends AppCompatActivity {

private GridView mGv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivity_gridview);
mGv = findViewById(R.id.gv);
// To-Do: mGv.setAdapter
}
}

5. Go to manifests -> AndroidManifest.xml

  To declare(register) an activity that we just created, i.e. .graidview.GridViewActivity

6. In  MainActivity .java, we have to create an mBtn, and set its onClickListener in order to go to the next page called activity_gridview.xml

Button mBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtn = findViewById(R.id.btn_gridview);
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, GridViewActivity.class);
startActivity(intent);
}
});
}

 7. Now we have to write an adapter for gridview

Let MyGridViewAdapter extend BaseAdapter

Select all the following methods to implement

Go to "layout" -> New -> Layout Resource File

Add a new resource file "layout_grid_item"

 

Go back to MyGridViewAdapter.java

public class MyGridViewAdapter extends BaseAdapter {
// (3)
private Context mContext;
private LayoutInflater mLayoutInflator;
// (4)
public MyGridViewAdapter(Context context){
this.mContext = context;
mLayoutInflator = LayoutInflater.from(context);
}


@Override
public int getCount() {
return 0;
}

@Override
public Object getItem(int position) {
return null;
}

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

// (1)
static class ViewHolder{
public ImageView imageView;
public TextView textView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//(2)
ViewHolder holder = null;
if(convertView==null)
{
// (5)
convertView = mLayoutInflator.inflate(R.layout.layout_grid_item, null);
holder = new ViewHolder();
holder.imageView = convertView.findViewById(R.id.iv_grid);
holder.textView = convertView.findViewById(R.id.tv_title);
convertView.setTag(holder);
}else{
// (6)
holder = (ViewHolder) convertView.getTag();
}
// (7)
return convertView;
}

Remember to accept internet permission in AndroidManifest.xml

Install glide module to load image from internet

implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

MyGridViewAdapter.java

 
package com.example.gridviewexample.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.TextView;

import com.bumptech.glide.Glide;
import com.example.gridviewexample.R;

public class MyGridViewAdapter extends BaseAdapter {
// (3)
private Context mContext;
private LayoutInflater mLayoutInflator;
// (4)
public MyGridViewAdapter(Context context){
this.mContext = context;
mLayoutInflator = LayoutInflater.from(context);
}


@Override
public int getCount() {
return 12;
}

@Override
public Object getItem(int position) {
return null;
}

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

// (1)
static class ViewHolder{
public ImageView imageView;
public TextView textView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//(2)
ViewHolder holder = null;
if(convertView==null)
{
// (5)
convertView = mLayoutInflator.inflate(R.layout.layout_grid_item, null);
holder = new ViewHolder();
holder.imageView = convertView.findViewById(R.id.iv_grid);
holder.textView = convertView.findViewById(R.id.tv_title);
convertView.setTag(holder);
}else{
// (6)
holder = (ViewHolder) convertView.getTag();
}
// (8)
holder.textView.setText("MATLAB");
Glide.with(mContext).load("https://upload.wikimedia.org/wikipedia/commons/archive/2/21/20170128174109%21Matlab_Logo.png").into(holder.imageView);
// (7)
return convertView;
}
}
   

 

Finally, we have to finish the adapter's parts.

GridViewActivity.java

package com.example.gridviewexample.gridview;

import android.os.Bundle;
import android.widget.GridView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.gridviewexample.R;

public class GridViewActivity extends AppCompatActivity {

private GridView mGv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivity_gridview);
mGv = findViewById(R.id.gv);
// To-Do: mGv.setAdapter
mGv.setAdapter(new MyGridViewAdapter(GridViewActivity.this));
}
}

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

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    me1237guy 發表在 痞客邦 留言(0) 人氣()