Skip to main content

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


(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...

Comments

Popular posts from this blog

Android - Google MAP V2 PART 1

Download Full Code  of PART-1 , 2 , 3 , 4 Download and configure Google Play Services Library in Eclipse Google Map for Android is now integrated with Google Play Services. So we need to set up Google Play Service Library for developing Google Map application in Android. Get the API key for Google Maps v2: Linux  :  For any other OS use this :  keytool -list -v -alias androiddebugkey \ -keystore <path_to_debug_keystore>debug.keystore \ -storepass android -keypass android Register with the Google APIs Console :    Google APIs Console  Select here the  Services  entry: Activate the  Google Maps Android API v2 . Register your application via its package in this console together with the SHA-1 fingerprint of your signature key. Click on Create new Android Key.. Add you SHA-1 and your package name in to box like example given in alert box. Support library...

Share Text To Facebook & Twitter ANDROID

Shaadi.com Indian Matrimonials Before Create this app you must Have to create Application on FACEBOOK & TWITTER Download Code

Android - Google MAP V2 PART 2

Download Full Code  of  PART-1 , 2 , 3 , 4 Before do this check part 1 Note : I have to run this in API 8 to API 17 that why i have used  ActionBarSherlock  support library. if you don't want that then replace it.  In main Activity i have added following code. package com.djandroid.mapsv2; import android.os.Bundle; import android.support.v4.app.FragmentManager; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.GoogleMap.OnMapClickListener; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends SherlockFragmentActivity { private GoogleMap MAP; @Override protected void onCreate(Bundle arg0) { // TODO Auto-generated method stub setTheme(R.style....