I have searched quite a few places but i haven't got up with any good solution that worked yet, and i really need help! I am making an application that needs to pass a longitude and latitude string from one activity to another. How can i do this??? Take a look at my code here: The LocationActivity.java needs to pass the string to the other activity and to another one that i didn't paste into here. And the string that needs to be passed is named: "latLongString"
LocationActivity.java:
import android.R.string;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class LocationActivity extends Activity {
private String Location;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationManager locManager;
locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000L,500.0f, locationListener);
Location location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
updateWithNewLocation(location);
if(location != null)
{
double latitude = location.getLatitude();
double longitude = location.getLongitude();
}
}
private void updateWithNewLocation(Location location) {
TextView myLocationText = (TextView)findViewById(R.id.LocationWord);
String latLongString = "";
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "Lat:" + lat + "\nLong:" + lng;
//This is where i need to pass the string to the other activity
} else {
latLongString = "No location found";
}
myLocationText.setText("Your Current Position is:\n" +
latLongString);
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
}
The other activity:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import java.util.Locale;
import android.R.string;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.gsm.SmsMessage;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.location.LocationManager;
import android.location.LocationListener;
public class FindAndroidActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
Button Nextbutton1, Nextbutton2, Nextbutton3, TestLocationService, EditSettings;
TextView Cordinates, Adress, FindAndroid, TextView;
EditText LocationWord;
private LocationManager locManager;
private LocationListener locListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firsttimescreen);
Nextbutton1 = (Button)findViewById(R.id.Nextbutton1);
Nextbutton1.setOnClickListener(this);
}
public void onClick(View src) {
switch(src.getId()) {
case R.id.Nextbutton1:
setContentView(R.layout.setup);
Nextbutton2 = (Button)findViewById(R.id.Nextbutton2);
TestLocationService = (Button)findViewById(R.id.TestLocationService);
TestLocationService.setOnClickListener(this);
Nextbutton2.setOnClickListener(this);
break;
case R.id.Nextbutton2:
setContentView(R.layout.setup1);
Nextbutton3 = (Button)findViewById(R.id.Nextbutton3);
LocationWord = (EditText)findViewById(R.id.LocationWord);
LocationWord.requestFocus(View.FOCUS_DOWN);
Nextbutton3.setOnClickListener(this);
break;
case R.id.Nextbutton3:
setContentView(R.layout.main);
EditSettings = (Button)findViewById(R.id.EditSettings);
EditSettings.setOnClickListener(this);
break;
case R.id.TestLocationService:
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String value = extras.getString("KEY");
}
Cordinates = (TextView)findViewById(R.id.Cordinates);
Cordinates.setText(value);
//This does not work because the string "value" isn't availible outside the braces,
//obviously. How do i make it availible there???
break;
case R.id.EditSettings:
setContentView(R.layout.setup1);
Nextbutton3 = (Button)findViewById(R.id.Nextbutton3);
LocationWord = (EditText)findViewById(R.id.LocationWord);
LocationWord.requestFocus(View.FOCUS_DOWN);
Nextbutton3.setOnClickListener(this);
break;
}
}
}
Bookmark this question. Show activity on this post. You should use putExtra() and getExtras() (or getString) functions from the Intent-class Answered here: [PutExtra/GetExtra][1] [1]: stackoverflow.com/questions/5265913/…
This example demonstrates how to pass a String from one Activity to another Activity in Android using Kotlin. Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml.
Answers related to “is a piece of data passed between activities when launching an intent.” start fragment from activity.
Android Bundles are generally used for passing data from one activity to another. Basically here concept of key-value pair is used where the data that one wants to pass is the value of the map, which can be later retrieved by using the key.
In your LocationActivity class:
Intent i = new Intent(this, FindAndroidActivity.class);
i.putExtra("KEY",YourData);
In FindAndroidActivity class
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String value = extras.getString("KEY");
}
Couple of scenarios:
If you want to pass the string when you start the new activity, then add it to the starting Intent and retrieve it in the new activity's onCreate
.
Sending arrays with Intent.putExtra
// Sending activity
String latLong = "test";
Intent i = new Intent(sendingClass.this, receivingClass.class);
i.putExtra("latLong", latLong);
startActivity(i);
// Receiving activity
Bundle extras = getIntent().getExtras();
String latLong = extras.getString("latLong");
If you want to pass the string when you return from an activity, then use startActivityForResult
and implement the onActivityResult
event
http://micropilot.tistory.com/1577
The 3rd scenario, passing the string between two activities running at the same time is not possible because only one activity can run (be in the foreground) at a time.
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