Using the date from DatePicker in URL for webservice

franssen00

New Member
Okayyyy, so in my code at the moment today's date is being read into the webservice url using the following snippet of code:\[code\]Calendar c = Calendar.getInstance();System.out.println("Current time => " + c.getTime());SimpleDateFormat df = new SimpleDateFormat("dd/MM");String formattedDate = df.format(c.getTime());\[/code\]I want it to automatically be todays date but I also want the user to be able to select a different date from the DatePicker and find the sunrise/sunset values for that particular date.I'm guessing this is simple and I'm just being a bit dim so any help would be appreciated, here is my code:\[code\]package richgrundy.learnphotography;import java.io.IOException;import java.io.InputStream;import java.io.StringReader;import java.text.SimpleDateFormat;import java.util.Calendar;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.protocol.BasicHttpContext;import org.apache.http.protocol.HttpContext;import org.w3c.dom.Document;import org.xml.sax.InputSource;import android.app.Activity;import android.app.FragmentTransaction;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Spinner;import android.widget.TextView;public class SunriseSunset extends Activity implements OnClickListener { public Button getLocation; public Button setLocationJapan; public TextView LongCoord; public TextView LatCoord; public double longitude; public double latitude; public LocationManager lm; public Spinner Locationspinner; public DateDialogFragment frag; public Button date; public Calendar now; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sunrisesunset); //Setting onClickListener for Calculate Sunrise/Sunset Button findViewById(R.id.CalculateSunriseSunset).setOnClickListener(this); //Sets up LocationManager to enable GPS data to be accessed. lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, new MyLocationListener()); //Declares Latitude and Longitude TextViews LatCoord = (TextView) findViewById(R.id.LatCoord); LongCoord = (TextView) findViewById(R.id.LongCoord); //Declares for Location Spinner/Dropdown addListenerOnSpinnerItemSelection(); //Date shit now = Calendar.getInstance(); date = (Button)findViewById(R.id.date_button); date.setText(String.valueOf(now.get(Calendar.DAY_OF_MONTH)+1)+"-"+String.valueOf(now.get(Calendar.MONTH))+"-"+String.valueOf(now.get(Calendar.YEAR))); date.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(); } }); } // More date shit public void showDialog() { FragmentTransaction ft = getFragmentManager().beginTransaction(); //get the fragment frag = DateDialogFragment.newInstance(this, new DateDialogFragmentListener(){ public void updateChangedDate(int year, int month, int day){ date.setText(String.valueOf(day)+"-"+String.valueOf(month+1)+"-"+String.valueOf(year)); now.set(year, month, day); } }, now); frag.show(ft, "DateDialogFragment"); } public interface DateDialogFragmentListener{ //this interface is a listener between the Date Dialog fragment and the activity to update the buttons date public void updateChangedDate(int year, int month, int day); } public void addListenerOnSpinnerItemSelection() { Locationspinner = (Spinner) findViewById(R.id.Locationspinner); Locationspinner .setOnItemSelectedListener(new CustomOnItemSelectedListener( this)); } public void setLocationFrance() { // TODO Auto-generated method stub LatCoord.setText("65.4112"); LongCoord.setText("85.8337"); } public void setLocationIndia() { // TODO Auto-generated method stub LatCoord.setText("21.4112"); LongCoord.setText("105.8337"); } public void setLocationJapan() { // TODO Auto-generated method stub LatCoord.setText("21.4112"); LongCoord.setText("15.8337"); } protected void showCurrentLocation() { // TODO Auto-generated method stub // This is called to find current location based on GPS data and sends // this to LongCoord and LatCoord TextViews Location location = lm .getLastKnownLocation(LocationManager.GPS_PROVIDER); latitude = location.getLatitude(); longitude = location.getLongitude(); LongCoord.setText(Double.toString(longitude)); LatCoord.setText(Double.toString(latitude)); } @Override public void onClick(View arg0) { Button b = (Button) findViewById(R.id.CalculateSunriseSunset); b.setClickable(false); new LongRunningGetIO().execute(); } private class LongRunningGetIO extends AsyncTask<Void, Void, String> { protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException { InputStream in = entity.getContent(); StringBuffer out = new StringBuffer(); int n = 1; while (n > 0) { byte[] b = new byte[4096]; n = in.read(b); if (n > 0) out.append(new String(b, 0, n)); } return out.toString(); } @Override protected String doInBackground(Void... params) { HttpClient httpClient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); // Finds todays date and adds that into the URL Calendar c = Calendar.getInstance(); System.out.println("Current time => " + c.getTime()); SimpleDateFormat df = new SimpleDateFormat("dd/MM"); String formattedDate = df.format(c.getTime()); String finalURL = "http://www.earthtools.org/sun/" + LatCoord.getText().toString().trim() + "/" + LongCoord.getText().toString().trim() + "/" + formattedDate + "/99/0"; HttpGet httpGet = new HttpGet(finalURL); String text = null; try { HttpResponse response = httpClient.execute(httpGet, localContext); HttpEntity entity = response.getEntity(); text = getASCIIContentFromEntity(entity); } catch (Exception e) { return e.getLocalizedMessage(); } return text; } protected void onPostExecute(String results) { if (results != null) { try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); InputSource s = new InputSource(new StringReader(results)); Document doc = dBuilder.parse(s); doc.getDocumentElement().normalize(); TextView tvSunrise = (TextView) findViewById(R.id.Sunrise); TextView tvSunset = (TextView) findViewById(R.id.Sunset); tvSunrise.setText(doc.getElementsByTagName("sunrise").item(0).getTextContent()); tvSunset.setText(doc.getElementsByTagName("sunset").item(0).getTextContent()); } catch (Exception e) { e.printStackTrace(); } } Button b = (Button) findViewById(R.id.CalculateSunriseSunset); b.setClickable(true); } } class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } }}\[/code\]DateFragmentDialog:\[code\]package richgrundy.learnphotography;import java.util.Calendar;import richgrundy.learnphotography.SunriseSunset.DateDialogFragmentListener;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.DialogFragment;import android.content.Context;import android.os.Bundle;import android.widget.DatePicker;public class DateDialogFragment extends DialogFragment { public static String TAG = "DateDialogFragment"; static Context mContext; //I guess hold the context that called it. Needed when making a DatePickerDialog. I guess its needed when conncting the fragment with the context static int mYear; static int mMonth; static int mDay; static DateDialogFragmentListener mListener; public static DateDialogFragment newInstance(Context context, DateDialogFragmentListener listener, Calendar now) { DateDialogFragment dialog = new DateDialogFragment(); mContext = context; mListener = listener; mYear = now.get(Calendar.YEAR); mMonth = now.get(Calendar.MONTH); mDay = now.get(Calendar.DAY_OF_MONTH); return dialog; } public Dialog onCreateDialog(Bundle savedInstanceState) { return new DatePickerDialog(mContext, mDateSetListener, mYear, mMonth, mDay); } private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; mListener.updateChangedDate(year, monthOfYear, dayOfMonth); } };}\[/code\]And just in case you want it here is the layout:\[code\]<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/fabricc" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SunriseSunset" > <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" android:text="Date:" android:textAppearance="?android:attr/textAppearanceMedium" /> <Button android:id="@+id/date_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="03-18-2012" android:onClick="clickMe"/> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout04" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" android:text="Location:" android:textAppearance="?android:attr/textAppearanceMedium" /> <Spinner android:id="@+id/Locationspinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:entries="@array/location_array" android:padding="10dp" /> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout343" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="4" > <TextView android:id="@+id/textView23" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:padding="10dp" android:text="Coordinates:" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/LatCoord" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" /> <TextView android:id="@+id/LongCoord" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" /> </LinearLayout> <Button android:id="@+id/CalculateSunriseSunset" style="@style/sub_menu" android:background="@drawable/blue_menu_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="5dp" android:text="Calculate Sunrise/Sunset Time" /> <LinearLayout android:id="@+id/LinearLayoutasdsd" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView122" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" android:text="Sunrise:" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/Sunrise" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="00:00:00" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> <LinearLayout android:id="@+id/LinearLayoutasdsad" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView133" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dp" android:text="Sunset:" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/Sunset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="00:00:00" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout></LinearLayout>\[/code\]Like I said any help would be massively appreciated =)
 
Back
Top