Click here to Skip to main content
15,893,487 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
hi,

I am currently trying to retrieve and display information from a database using datePicker and timePicker in android. I've tried for weeks and have searched through the internet for solutions but havent found any and i'm currently stuck where the application crashes each time i click on the button to search through the database based on the time and date that i've specified. Here's my code. Any suggestions?

package sirtat.individualProject.PublicTransportationTimeScheduler;
Java
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

import android.view.View;
import android.widget.Button;

import android.widget.Toast;

import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.DatePicker;

import java.sql.Time;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.database.Cursor;

public class ScheduleActivity extends Activity {
	SQLiteDatabase db;
	
	TimePicker timePicker;
	DatePicker datePicker;
	
	int hour, minute;
	int yr, month, day;
	
	static String fDate="DepartureDate";
	static String fTime="DEPART_TIME";
	public static final String KEY_FLIGHTNO = "FLIGHT_NO";
	public static final String KEY_DLOCATION = "DEPART_LOCATION";
	public static final String KEY_ALOCATION = "ARRIVE_LOCATION";
	public static final String f_Arrival = "FlightArrival";
	
	/** Called when the activity is first created */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.schedule_layout);
		
		db = openOrCreateDatabase("PublicTransport2" , SQLiteDatabase.CREATE_IF_NECESSARY, null);
		
		db.setVersion(1);
		db.setLocale(Locale.getDefault());
		db.setLockingEnabled(true); 
		
		Calendar today = Calendar.getInstance();
		
		//--GET THE CURRENT DATE--
	    yr= today.get(Calendar.YEAR);
		month = today.get(Calendar.MONTH);
		day = today.get(Calendar.DAY_OF_MONTH);
		
		//--GET THE CURRENT TIME--
		hour = today.get(Calendar.HOUR);
		minute = today.get(Calendar.MINUTE);
		
		timePicker = (TimePicker) findViewById(R.id.timePicker);
		
		datePicker = (DatePicker) findViewById(R.id.datePicker);
		
		
		
	
		
		//--Button view--
				Button btnOp1 = (Button) findViewById(R.id.btnOption1);
				btnOp1.setOnClickListener(new View.OnClickListener() {

					//inserting record in the database
					
						

					public void onClick(View v) {
						Cursor cur = fetchAllTodos();
						
						fDate = datePicker.getYear() +
								"/" + (datePicker.getMonth() +1) +
								"/" + datePicker.getDayOfMonth();
						fTime = timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute(); 
					
					
					startManagingCursor (cur);
					
			     	if (cur.moveToFirst()) {
			     		Toast.makeText(null, "Schedule Option 1 Selected:" + "\n" +
			     				"Flight No:" + cur.getString(0) + "\n" +
			     				"Depart Location:" + cur.getString(1) + "\n" +
			     				"Arrive Location:" + cur.getString(2), Toast.LENGTH_LONG).show();
					}else{
						Toast.makeText(null, "Not found", Toast.LENGTH_LONG).show();
					}
					}
					 
					Cursor fetchAllTodos(){
						Cursor cur=db.rawQuery("SELECT " +KEY_FLIGHTNO+ "," +KEY_DLOCATION+ "," +KEY_ALOCATION+  "FROM" +f_Arrival+ "WHERE DEPART_TIME = '" 
								+fTime+ "')" + " AND DepartureDate= '" +
										fDate+ "';", new String [] {fDate,fTime});
						return cur; 
						}
					
					public void Insert(String FLIGHT_NO, String DEPART_LOCATION, String ARRIVE_LOCATION)
				    {
				       ContentValues data=createContentValues(FLIGHT_NO, DEPART_LOCATION, ARRIVE_LOCATION);
				       db.insert(f_Arrival, null, data);
				       Toast.makeText(null, "Record Inserted", Toast.LENGTH_SHORT).show();
				    }
					
					private ContentValues createContentValues(String FLIGHT_NO, String DEPART_LOCATION, String ARRIVE_LOCATION)     
				    {
				              ContentValues values = new ContentValues();
				              values.put(KEY_FLIGHTNO, FLIGHT_NO);
				  			  values.put(KEY_DLOCATION, DEPART_LOCATION);
				  	    	  values.put(KEY_ALOCATION, ARRIVE_LOCATION);
				              return values;
				    }
				   });	
					
				Button btnOp2 = (Button) findViewById(R.id.btnScheduleOption2);
				btnOp2.setOnClickListener(new View.OnClickListener() {
					public void onClick(View v) {
						Toast.makeText(getBaseContext(),
								"Date selected:" + datePicker.getYear() +
								"/" + (datePicker.getMonth() + 1) +
								"/" + datePicker.getDayOfMonth() + "\n" +
								"Time Selected:" + timePicker.getCurrentHour() +
								":" + timePicker.getCurrentMinute(),
								Toast.LENGTH_LONG).show();
					
					}
				});
			}
Posted
Updated 1-May-12 4:48am
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900