I am trying to transfer data from one page to another but some problem is coming below is the code. I am trying to transfer value of variable using bundle from first activity to second but something is wrong please tell me whats going wrong.
below is first activity:-
package route.planning;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class login extends Activity {
/** Called when the activity is first created. */
Context mCtx;
final static int START =0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mCtx = this;
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
// @Override
public void onClick(View v)
{
String fromLat = new String();
String fromLong = new String();
String toLat = new String();
String toLong = new String();
fromLat=String.valueOf(R.id.FromLatitude);
fromLong=String.valueOf(R.id.FromLongitude);
toLat=String.valueOf(R.id.ToLatitude);
toLong=String.valueOf(R.id.ToLongitude);
Intent intent = new Intent(mCtx, MapRouteActivity.class);
/*Sending some arguments*/
Bundle bundle = new Bundle();
bundle.putString("fromLat",fromLat );
bundle.putString("fromLong",fromLong );
bundle.putString("toLat",toLat );
bundle.putString("toLong",toLong );
intent.putExtras(bundle);
/*Start Activity*/
mCtx.startActivity(intent);
/*Start ActivityForResult*/
((Activity)mCtx).startActivityForResult(intent, 2);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == START)
{
Toast.makeText(mCtx, Integer.toString(resultCode), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onDestroy(){
super.onDestroy();
finish();
}
}
Below is part of second activity where i am trying to get value from above
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.ci.geo.route.Road;
import org.ci.geo.route.RoadProvider;
import route.planning.R;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.os.Bundle;
import android.os.Handler;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
public class MapRouteActivity extends MapActivity {
LinearLayout linearLayout;
MapView mapView;
private Road mRoad;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.routeplanning);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
Bundle extras = this.getIntent().getExtras();
final String fLat=extras.getString("fromLat");
final String fLong=extras.getString("fromLong");
final String tLat=extras.getString("toLat");
final String tLong=extras.getString("toLong");
new Thread() {
@Override
public void run() {
double fromLat=Double.parseDouble(fLat);
double fromLon=Double.parseDouble(fLong);
double toLat=Double.parseDouble(tLat);
double toLon=Double.parseDouble(tLong);
//double fromLat = 28.6353, fromLon = 77.2250, toLat = 30.7313, toLon = 76.7754;
/***url contains the path to fetch the kml file from the internet*/
String url = RoadProvider
.getUrl(fromLat, fromLon, toLat, toLon);
InputStream is = getConnection(url);
mRoad = RoadProvider.getRoute(is);
mHandler.sendEmptyMessage(0);
}
}.start();
}
fromLat=String.valueOf(R.id.FromLatitude);
fromLong=String.valueOf(R.id.FromLongitude);
toLat=String.valueOf(R.id.ToLatitude);
toLong=String.valueOf(R.id.ToLongitude);
Here is the problem. You don't read any actual data from the activity, but get the string represantation of identifiers of controls.
You need to obtain the user inputs if R.id.FromLatitude and so on are identifiers of EditText:
fromLat = ((EditText)findViewById(R.id.FromLatitude)).getText().toString();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With