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

Multi-Selection ListView ANDROID with CheckBox

Shaadi.com Indian Matrimonials Download code Create New Android Project: in res/layout/main.xml create new layout for list row : in res/layout/list_row.xml in your Main Activity Class: Create Class name mItems: Create New Class name SelectViewHolder: Create New Class name SelectArrayAdapter: Download Source Code Click Here : Check PART2 for more detail. Shaadi.com Matrimonials

ANDROID - update status Linked-IN

jars: 1. linkedin-j-android.jar 2. scribe-1.3.1.jar MainActivity: package com.testshare; import java.util.EnumSet; import org.scribe.oauth.OAuthService; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import com.google.code.linkedinapi.client.LinkedInApiClient; import com.google.code.linkedinapi.client.LinkedInApiClientFactory; import com.google.code.linkedinapi.client.enumeration.NetworkUpdateType; import com.google.code.linkedinapi.schema.Network; public class TestshareActivity extends Activity { private int LINKEDIN_OAUTH_RESULT_CODE = 4000; private OAuthService service; private static final String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(...