ANDROID - Adding ActionBar Navigation Tabs PART-2 (with GridView & MultipleSelection)

12:23:00 Dhaval Sodha Parmar 0 Comments


(Please ignore project folder name "AlarmManager")

Before Go Ahead Please Check PART-1



We have created TabFragment1 class in PART-1. I have just modify it.

 package com.AlarmManager;  
 import android.content.Context;  
 import android.database.Cursor;  
 import android.graphics.Bitmap;  
 import android.os.Bundle;  
 import android.provider.MediaStore;  
 import android.view.LayoutInflater;  
 import android.view.View;  
 import android.view.ViewGroup;  
 import android.view.View.OnClickListener;  
 import android.widget.BaseAdapter;  
 import android.widget.CheckBox;  
 import android.widget.GridView;  
 import android.widget.ImageView;  
 import com.actionbarsherlock.app.SherlockFragment;  
 public class TabFragment1 extends SherlockFragment {  
      private GridView gridV;  
      private int count;  
      private Bitmap[] thumbnails;  
      private boolean[] thumbnailsselection;  
      private String[] arrPath;  
      @Override  
      public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                Bundle savedInstanceState) {  
           // Inflate the layout for this fragment  
           View view = inflater.inflate(R.layout.show_file, container, false);  
           // do your view initialization here  
           gridV = (GridView) view.findViewById(R.id.grid_view);  
           final String[] columns = { MediaStore.Images.Media.DATA,  
                     MediaStore.Images.Media._ID };  
           final String orderBy = MediaStore.Images.Media._ID;  
           Cursor imagecursor = getActivity().managedQuery(  
                     MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,  
                     null, orderBy);  
           int image_column_index = imagecursor  
                     .getColumnIndex(MediaStore.Images.Media._ID);  
           this.count = imagecursor.getCount();  
           this.thumbnails = new Bitmap[this.count];  
           this.arrPath = new String[this.count];  
           this.thumbnailsselection = new boolean[this.count];  
           for (int i = 0; i < this.count; i++) {  
                imagecursor.moveToPosition(i);  
                int id = imagecursor.getInt(image_column_index);  
                int dataColumnIndex = imagecursor  
                          .getColumnIndex(MediaStore.Images.Media.DATA);  
                thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(  
                          getActivity().getContentResolver(), id,  
                          MediaStore.Images.Thumbnails.MICRO_KIND, null);  
                arrPath[i] = imagecursor.getString(dataColumnIndex);  
           }  
           gridV.setAdapter(new ImageAdapter(getActivity()));  
           imagecursor.close();  
           return view;  
      }  
      public class ImageAdapter extends BaseAdapter {  
           private LayoutInflater mInflater;  
           private Context mContext;  
           public ImageAdapter(Context context) {  
                mContext = context;  
           }  
           public int getCount() {  
                return count;  
           }  
           public Object getItem(int position) {  
                return position;  
           }  
           public long getItemId(int position) {  
                return position;  
           }  
           public View getView(int position, View convertView, ViewGroup parent) {  
                ViewHolder holder;  
                if (convertView == null) {  
                     holder = new ViewHolder();  
                     convertView = LayoutInflater.from(mContext).inflate(  
                               R.layout.row_photo, null);  
                     holder.imageview = (ImageView) convertView  
                               .findViewById(R.id.thumbImage);  
                     holder.checkbox = (CheckBox) convertView  
                               .findViewById(R.id.itemCheckBox);  
                     convertView.setTag(holder);  
                } else {  
                     holder = (ViewHolder) convertView.getTag();  
                }  
                holder.checkbox.setId(position);  
                holder.imageview.setId(position);  
                holder.checkbox.setOnClickListener(new OnClickListener() {  
                     public void onClick(View v) {  
                          // TODO Auto-generated method stub  
                          CheckBox cb = (CheckBox) v;  
                          int id = cb.getId();  
                          if (thumbnailsselection[id]) {  
                               cb.setChecked(false);  
                               thumbnailsselection[id] = false;  
                          } else {  
                               cb.setChecked(true);  
                               thumbnailsselection[id] = true;  
                          }  
                     }  
                });  
                holder.imageview.setOnClickListener(new OnClickListener() {  
                     public void onClick(View v) {  
                          // TODO Auto-generated method stub  
                          int id = v.getId();  
                          // Intent intent = new Intent();  
                          // intent.setAction(Intent.ACTION_VIEW);  
                          // intent.setDataAndType(Uri.parse("file://" +  
                          // arrPath[id]),"image/*");  
                          // startActivity(intent);  
                     }  
                });  
                holder.imageview.setImageBitmap(thumbnails[position]);  
                holder.checkbox.setChecked(thumbnailsselection[position]);  
                holder.id = position;  
                return convertView;  
           }  
      }  
      class ViewHolder {  
           ImageView imageview;  
           CheckBox checkbox;  
           int id;  
      }  
 }  

show_file.xml



 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:orientation="vertical" >  
   <GridView  
     xmlns:android="http://schemas.android.com/apk/res/android"  
     android:id="@+id/grid_view"  
     android:layout_width="fill_parent"  
     android:layout_height="fill_parent"  
     android:columnWidth="90dp"  
     android:gravity="center"  
     android:horizontalSpacing="10dp"  
     android:numColumns="auto_fit"  
     android:stretchMode="columnWidth"  
     android:verticalSpacing="10dp" >  
   </GridView>  
 </LinearLayout>  

row_photo.xml




 <?xml version="1.0" encoding="UTF-8"?>  
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent" >  
   <ImageView  
     android:id="@+id/thumbImage"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_centerInParent="true" />  
   <CheckBox  
     android:id="@+id/itemCheckBox"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_alignParentRight="true"  
     android:layout_alignParentTop="true" />  
 </RelativeLayout>  

Enjoy Coding...

0 comments: