In this tutorial we are create custom gride view.gride view same as custom listview.
first create project than create java class and xml layout.code show bewlo
-add GridView widgets in activity_main.xml
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context="com.example.aaru.costomizegride.MainActivity"
>
<GridView android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:gravity="center" />
</RelativeLayout>
-get id and put some dummy images in drawble folder and in array.
MainActivity.class
package com.example.aaru.costomizegride;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
GridView gridView;
ArrayList<String>alName=new ArrayList<>();
ArrayList<Integer>alImage=new ArrayList<>();
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView= (GridView) findViewById(R.id.gridView);
for (int i=0;i<24;i++){
alName.add("Name "+(i+1));
}
alImage.add(R.drawable.sample_0);
alImage.add(R.drawable.sample_1);
alImage.add(R.drawable.sample_2);
alImage.add(R.drawable.sample_3);
alImage.add(R.drawable.sample_4);
alImage.add(R.drawable.sample_5);
alImage.add(R.drawable.sample_6);
alImage.add(R.drawable.sample_7);
alImage.add(R.drawable.sample_0);
alImage.add(R.drawable.sample_1);
alImage.add(R.drawable.sample_2);
alImage.add(R.drawable.sample_3);
alImage.add(R.drawable.sample_4);
alImage.add(R.drawable.sample_5);
alImage.add(R.drawable.sample_6);
alImage.add(R.drawable.sample_7);
alImage.add(R.drawable.sample_0);
alImage.add(R.drawable.sample_1);
alImage.add(R.drawable.sample_2);
alImage.add(R.drawable.sample_3);
alImage.add(R.drawable.sample_4);
alImage.add(R.drawable.sample_5);
alImage.add(R.drawable.sample_6);
alImage.add(R.drawable.sample_7);
CustomAdapter customAdapter=new CustomAdapter(alName,alImage,MainActivity.this);
gridView.setAdapter(customAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, alName.get(position), Toast.LENGTH_SHORT).show();
}
});
}
}
-create xml layout and put below code.
raw.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ImageView
android:layout_width="90dp"
android:layout_height="90dp"
android:id="@+id/imageView"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:id="@+id/textName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/imageView"
android:layout_alignRight="@+id/imageView"
android:layout_below="@+id/imageView"
android:layout_marginEnd="26dp"
android:layout_marginRight="26dp"
android:text="Name" />
</LinearLayout>
-create a class name is customadapter inflate the raw xml .
CustomAdapter.class
package com.example.aaru.costomizegride;
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 android.widget.Toast;
import java.util.ArrayList;
/** * Created by Aaru on 9/28/2017. */
public class CustomAdapter extends BaseAdapter {
ArrayList<String> alName = new ArrayList<>();
ArrayList<Integer> alImage;
Context context;
LayoutInflater layoutInflater;
public CustomAdapter(ArrayList<String> alName, ArrayList<Integer> alImage, Context context) {
this.alName = alName;
this.alImage=alImage;
this.context = context;
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override public int getCount() {
return alName.size();
}
@Override public Object getItem(int position) {
return null;
}
@Override public long getItemId(int position) {
return 0;
}
@Override public View getView(final int position, View convertView, ViewGroup parent) {
final View view=layoutInflater.inflate(R.layout.raw,null);
TextView textName=(TextView)view.findViewById(R.id.textName);
ImageView imageView =(ImageView) view.findViewById(R.id.imageView);
imageView.setImageResource(alImage.get(position));
textName.setText(alName.get(position));
textName.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Toast.makeText(context, alName.get(position), Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Enjoy Coding>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
get error??????tell me.
ReplyDelete