Monday, 30 September 2013

How to use alarmmanager 2 times every day?

You can use an interval of AlarmManager.INTERVAL_DAY / 2 :

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 35);
 calendar.set(Calendar.SECOND, 0); 
 
 AlarmManager am = (AlarmManager)getApplicationContext().getSystemService  (Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
 PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent,      PendingIntent.FLAG_UPDATE_CURRENT);
 am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),        AlarmManager.INTERVAL_DAY / 2, pi);


but if the time of the day in which you fire your alarm matters you can use two calendar objects :
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.HOUR_OF_DAY, 12); //midday
cal1.set(Calendar.MINUTE, 00);
cal1.set(Calendar.SECOND, 00); 
 
 
 Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.HOUR_OF_DAY, 18);//8pm for example
cal2.set(Calendar.MINUTE, 00);
cal2.set(Calendar.SECOND, 00);
and set your alarm manager :
am.setRepeating(AlarmManager.RTC_WAKEUP, cal1.getTimeInMillis(),cal2.getTimeInMillis(), pi);

Wednesday, 17 July 2013

android video player from SD card

package com.example.videoplaysdcard;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {
    VideoView videoView_player;
    private static final String TAG="com.example.videoplaysdcard.MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initUIElements();
        playVideoFile("/mnt/sdcard/backups/p.mp4");
    }



    private void initUIElements() {
        videoView_player = (VideoView) findViewById(R.id.videoView_player);
    }
   
    private void playVideoFile(String sdCardPath) {
        try{
        MediaController mc = new MediaController(this);
        mc.setAnchorView(videoView_player);
        mc.setMediaPlayer(videoView_player);
        videoView_player.setMediaController(mc);
        videoView_player.setVideoPath(sdCardPath);
        videoView_player.requestFocus();
        videoView_player.start();
        }catch(Exception e){
            Log.e(TAG,e.toString());
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

Monday, 8 July 2013

Android radio buttons example

In Android, you can use “android.widget.RadioButton” class to render radio button, and those radio buttons are usually grouped by android.widget.RadioGroup. If RadioButtons are in group, when one RadioButton within a group is selected, all others are automatically deselected.
In this tutorial, we show you how to use XML to create two radio buttons, and grouped in a radio group. When button is clicked, display which radio button is selected.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.

1. Custom String

Open “res/values/strings.xml” file, add some custom string for radio button.
File : res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MyAndroidAppActivity!</string>
    <string name="app_name">MyAndroidApp</string>
    <string name="radio_male">Male</string>
    <string name="radio_female">Female</string>
    <string name="btn_display">Display</string>
</resources>

2. RadioButton

Open “res/layout/main.xml” file, add “RadioGroup“, “RadioButton” and a button, inside the LinearLayout.
File : res/layout/main.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" >
 
    <RadioGroup
        android:id="@+id/radioSex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
 
        <RadioButton
            android:id="@+id/radioMale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_male" 
            android:checked="true" />
 
        <RadioButton
            android:id="@+id/radioFemale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_female" />
 
    </RadioGroup>
 
    <Button
        android:id="@+id/btnDisplay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn_display" />
 
</LinearLayout>
Radio button selected by default.
To make a radio button is selected by default, put android:checked="true" within the RadioButton element. In this case, radio option “Male” is selected by default.

3. Code Code

Inside activity “onCreate()” method, attach a click listener on button.
File : MyAndroidAppActivity.java
package com.mkyong.android;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
 
public class MyAndroidAppActivity extends Activity {
 
  private RadioGroup radioSexGroup;
  private RadioButton radioSexButton;
  private Button btnDisplay;
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 
 addListenerOnButton();
 
  }
 
  public void addListenerOnButton() {
 
 radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
 btnDisplay = (Button) findViewById(R.id.btnDisplay);
 
 btnDisplay.setOnClickListener(new OnClickListener() {
 
  @Override
  public void onClick(View v) {
 
          // get selected radio button from radioGroup
   int selectedId = radioSexGroup.getCheckedRadioButtonId();
 
   // find the radiobutton by returned id
          radioSexButton = (RadioButton) findViewById(selectedId);
 
   Toast.makeText(MyAndroidAppActivity.this,
    radioSexButton.getText(), Toast.LENGTH_SHORT).show();
 
  }
 
 });
 
  }
}

4. Demo

Run the application.
1. Result, radio option “Male” is selected.
android radio button demo1
2. Select “Female” and click on the “display” button, the selected radio button value is displayed.
android radio button demo2

Download Source Code

Download it – Android-RadioButton-Example.zip (15 KB)


Android Inser to database

Helper.java

package com.example.feedback;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class Helper extends SQLiteOpenHelper{
    // database variables.
        //instead of com.mmad.irctc you have to write your own package name.
        private static String DB_PATH = "/data/data/com.example.feedback/databases/";
       
        //database name with sqllite extension
        private static String DB_NAME = "feedback.sqlite";
        private SQLiteDatabase myDataBase;
        private final Context myContext;
        private String TAG = "Helper";
        Cursor cursorGetData;
        SQLiteDatabase checkDB = null;

        public Helper(Context context) {
            super(context, DB_NAME, null, 1);
            this.myContext = context;
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        }

        public void createDataBase() throws IOException {

            boolean dbExist = checkDataBase();
            if (!dbExist) {
                this.getReadableDatabase();
                try {
                    copyDataBase();
                } catch (IOException e) {
                    throw new Error("Error copying database");
                }
            }
        }

        private boolean checkDataBase() {
            try {
                String myPath = DB_PATH + DB_NAME;
                checkDB = SQLiteDatabase.openDatabase(myPath, null,SQLiteDatabase.OPEN_READWRITE);
            } catch (SQLiteException e) {
                Log.e(TAG, "Error is" + e.toString());
            }
            if (checkDB != null) {
                checkDB.close();
            }
            return checkDB != null ? true : false;
        }

        private void copyDataBase() throws IOException {
            InputStream myInput = myContext.getAssets().open(DB_NAME);
            String outFileName = DB_PATH + DB_NAME;
            OutputStream myOutput = new FileOutputStream(outFileName);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = myInput.read(buffer)) > 0) {
                myOutput.write(buffer, 0, length);
            }
            myOutput.flush();
            myOutput.close();
            myInput.close();
        }

        public void openDataBase() throws SQLException {
            String myPath = DB_PATH + DB_NAME;
            myDataBase = SQLiteDatabase.openDatabase(myPath, null,SQLiteDatabase.OPEN_READWRITE);
        }

        public synchronized void close() {
            if (myDataBase != null)
                myDataBase.close();
            super.close();
        }

        private Cursor getData(String sql) {
            openDataBase();
            cursorGetData = getReadableDatabase().rawQuery(sql, null);
            return cursorGetData;
        }

        private long insertData(String tableName, ContentValues values) {
            openDataBase();
            return myDataBase.insert(tableName, null, values);

        }

        private int updateData(String tableName, ContentValues values,String condition) {
            openDataBase();
            return myDataBase.update(tableName, values, condition, null);
        }

        private int deleteData(String tableName, String condition) {
           
            return myDataBase.delete(tableName, condition, null);
        }

        //Select from the database        
        public List<CustomerInformationBeen> getGRCInfo() {
           
            ArrayList<CustomerInformationBeen> cList=new ArrayList<CustomerInformationBeen>();           
            try {
               
                String sql="Select * from customer_registration";
                Cursor cursor=getData(sql);
                int size = cursor.getCount();
                cursor.moveToFirst();
                for(int i=0;i<size;i++){
                    CustomerInformationBeen ci=new CustomerInformationBeen();
                    ci.setID(cursor.getInt(cursor.getColumnIndex("cr_id")));
                    ci.setName(cursor.getString(cursor.getColumnIndex("cr_name")));
                    ci.setAddress(cursor.getString(cursor.getColumnIndex("cr_address")));
                    ci.setCity(cursor.getString(cursor.getColumnIndex("cr_city")));
                    ci.setState(cursor.getString(cursor.getColumnIndex("cr_state")));
                    ci.setCountry(cursor.getString(cursor.getColumnIndex("cr_country")));
                    ci.setPin(cursor.getString(cursor.getColumnIndex("cr_pin")));
                    ci.setNationality(cursor.getString(cursor.getColumnIndex("cr_nationality")));
                    ci.setSex(cursor.getString(cursor.getColumnIndex("cr_sex")));
                    ci.setAge(cursor.getInt(cursor.getColumnIndex("cr_age")));
                    ci.setCompany(cursor.getString(cursor.getColumnIndex("cr_company")));
                    ci.setMobile(cursor.getString(cursor.getColumnIndex("cr_mobile")));
                    ci.setPhone(cursor.getString(cursor.getColumnIndex("cr_phone")));
                    ci.setEmail(cursor.getString(cursor.getColumnIndex("cr_email")));
                    ci.setDob(cursor.getString(cursor.getColumnIndex("cr_dob")));
                    ci.setDoa(cursor.getString(cursor.getColumnIndex("cr_doa")));
                    cList.add(ci);
                    cursor.moveToNext();
                }
                cursor.close();
                cursorGetData.close();
                myDataBase.close();
            } catch (Exception e) {
                // TODO: handle exception
            }           
            return cList;           
        }
       
        //getting selected data
        public Map<Integer, String>  getSelectedCusInfo(int id) {
           
            Map<Integer, String> sMap = new HashMap<Integer, String>();
           
            try {
                String sql="Select * from customer_registration  where cr_id="+id;
                Cursor cursor=getData(sql);
                int size = cursor.getCount();
                cursor.moveToFirst();
                for(int i=0;i<size;i++){
                    sMap.put(1,cursor.getString(cursor.getColumnIndex("cr_name")));
                    sMap.put(2,cursor.getString(cursor.getColumnIndex("cr_address")));
                    sMap.put(3,cursor.getString(cursor.getColumnIndex("cr_city")));
                    sMap.put(4,cursor.getString(cursor.getColumnIndex("cr_state")));
                    sMap.put(5,cursor.getString(cursor.getColumnIndex("cr_country")));
                    sMap.put(6,cursor.getString(cursor.getColumnIndex("cr_pin")));
                    sMap.put(7,cursor.getString(cursor.getColumnIndex("cr_nationality")));
                    sMap.put(8,cursor.getString(cursor.getColumnIndex("cr_sex")));
                    sMap.put(9,cursor.getString(cursor.getColumnIndex("cr_age")));
                    sMap.put(10,cursor.getString(cursor.getColumnIndex("cr_company")));
                    sMap.put(11,cursor.getString(cursor.getColumnIndex("cr_mobile")));
                    sMap.put(12,cursor.getString(cursor.getColumnIndex("cr_phone")));
                    sMap.put(13,cursor.getString(cursor.getColumnIndex("cr_email")));
                    sMap.put(14,cursor.getString(cursor.getColumnIndex("cr_dob")));
                    sMap.put(15,cursor.getString(cursor.getColumnIndex("cr_doa")));
                }
            } catch (Exception e) {
                // TODO: handle exception
            }
           
            return sMap;
           
        }
       
      
        /*
          //Select from database
          public ArrayList<UserContacts> getContactAdult() {
            ArrayList<UserContacts> passengerInfo = new ArrayList<UserContacts>();
            try {
                Cursor cursor = getData("select * from Contacts where C_Age>4");
                int size = cursor.getCount();
                cursor.moveToFirst();
                for (int i = 0; i < cursor.getCount(); i++) {
                    UserContacts contact=new UserContacts();
                    contact.setContactID(cursor.getString(cursor.getColumnIndex("C_ID")));
                    contact.setContactName(cursor.getString(cursor.getColumnIndex("C_Name")));
                    contact.setContactAge(cursor.getInt(cursor.getColumnIndex("C_Age")));
                    contact.setContactDOB(cursor.getString(cursor.getColumnIndex("C_DOB")));
                    contact.setContactGender(cursor.getString(cursor.getColumnIndex("C_Gender")));
                    contact.setContactGCode(cursor.getString(cursor.getColumnIndex("C_GCode")));
                    contact.setContactFoodPref(cursor.getString(cursor.getColumnIndex("C_FoodPref")));
                    contact.setContactFPCode(cursor.getString(cursor.getColumnIndex("C_FPCode")));
                    contact.setContactIDCardType(cursor.getString(cursor.getColumnIndex("C_IDCardType")));
                    contact.setContactIDCCode(cursor.getString(cursor.getColumnIndex("C_IDCCode")));
                    contact.setContactIDCardNo(cursor.getString(cursor.getColumnIndex("C_IDCardNo")));
                    contact.setContactSeniorCitizen(cursor.getString(cursor.getColumnIndex("C_SenoirCitizen")));
                    contact.setContactFlag(cursor.getString(cursor.getColumnIndex("C_flag")));
                    passengerInfo.add(contact);
                    cursor.moveToNext();
                }
               
                cursor.close();
                cursorGetData.close();
                myDataBase.close();
       
            } catch (Exception ex) {
       
            }
            return passengerInfo;
          }
          */
        /*
            //Update the database
            public long updateChildPassenger(String childID, UserContacts usercontact) {
            long value = 0;
            try
            {
                 ContentValues initialValues = new ContentValues();
                 SQLiteDatabase db=this.getWritableDatabase();
                 openDataBase();
                  initialValues.put("tc_Name",usercontact.getContactName());
                  initialValues.put("tc_Gender",usercontact.getContactGender());
                initialValues.put("tc_Age",usercontact.getContactAge());
                initialValues.put("tc_DOB",usercontact.getContactDOB());
                initialValues.put("C_ID",new RandomNumber().GenerateRandomNumber());
                value = db.update("temp_child", initialValues, "tc_Id="+childID, null);
                myDataBase.close();
            }
                catch (Exception e) {
                   
                    Log.e("error is",""+e);
                   
                }
            return value;
           
        }
*/
       
        //delete the database
        public int deleteAdultContact(String contactID) {
            int value = 0;
            try {
                openDataBase();
                value = deleteData("temp_adult","ta_Id ="+contactID);
                myDataBase.close();
            } catch (Exception ex) {
                Log.d(TAG, "Error in deleteAdultContact()" + ex.toString());
            }
            return value;
        }

        public long insertUser(String name, String address,String city,String state,String country,String pin,String nationality,String sex,String age,String company,String mobile,String phone,String email,String dob,String doa) {
            long value = 0;
            try {
               
                ContentValues initialValues = new ContentValues();
               
                initialValues.put("cr_name", name);
                initialValues.put("cr_address", address);
                initialValues.put("cr_city", city);
                initialValues.put("cr_state", state);
                initialValues.put("cr_country", country);
                initialValues.put("cr_pin", pin);
                initialValues.put("cr_nationality", nationality);
                initialValues.put("cr_sex", sex);
                initialValues.put("cr_age", age);
                initialValues.put("cr_company", company);
                initialValues.put("cr_mobile", mobile);
                initialValues.put("cr_phone", phone);
                initialValues.put("cr_email", email);
                initialValues.put("cr_dob", dob);
                initialValues.put("cr_doa", doa);
               
                value = insertData("customer_registration", initialValues);
                Log.d("value1=", "" + value);

            }catch (Exception e) {
                // TODO: handle exception
            }
            return value;
           
        }

       
    }



activity



for insert call the method


long value = helper.insertUser(nameValue,address.getText().toString(),city.getText().toString(),state.getText().toString(),country.getText().toString(),pin.getText().toString(),nationality.getText().toString(),sex.getText().toString(),age.getText().toString(),company.getText().toString(),mobile.getText().toString(),phone.getText().toString(),email.getText().toString(),dob.getText().toString(),doa.getText().toString());
                    Log.d("Value","Inserted = "+value);


for display



List<CustomerInformationBeen> list=new ArrayList<CustomerInformationBeen>();
            list=helper.getGRCInfo();
            Iterator<CustomerInformationBeen> itr=list.iterator();
            while (itr.hasNext()) {
                CustomerInformationBeen ci =  itr.next();
                int cusID=ci.getID();
                String cname=ci.getName();
               
                //creating dynamic textview
                TextView cnameText=new TextView(this);
                cnameText.setText(cname);
                cnameText.setId(cusID);
                cusListinfo.addView(cnameText);

}



using map


Map<Integer, String> sMap=new HashMap<Integer, String>();
                        sMap=helper.getSelectedCusInfo(id);
                       
                        name.setText(sMap.get(1));