我有一個獲取當前位置的應用程序。它會返回您當前的地址,經度和緯度。當你點擊轉換時,它會將你帶到一個新的班級。用另一個類的雙精度填充TextView
我想獲得緯度和經度(如果有的話)到另一個類的textView。
FIRST CLASS
public class MainActivity extends AppCompatActivity {
private static Button newWindowBtn; //new window button
Button btnShowLocation;
GPSTracker gps;
Double latitude;
Double longitude;
String addressStr;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
shareIt();
}
});
final TextView address = (TextView)findViewById(R.id.textView);
onClickButtonListener(); //NEW WINDOW CLICK LISTENER
btnShowLocation = (Button) findViewById(R.id.show_location); //GPS BUTTON
final Geocoder geocoder = new Geocoder(this,Locale.ENGLISH);
btnShowLocation.setOnClickListener(new View.OnClickListener()
{ //GPS CLICK LISTENER
@Override
public void onClick(View v) { //SHOWS LOCATION
gps = new GPSTracker(MainActivity.this);
if(gps.canGetLocation()){
latitude = gps.getLatitude();
longitude = gps.getLongitude();
try{
List<Address> addresses = geocoder.getFromLocation(latitude,longitude,1);
if(addresses != null)
{
Address returnedAddress = addresses.get(0);
StringBuilder strReturnedAddress = new StringBuilder("Address:\n");
for (int i = 0; i < returnedAddress.getMaxAddressLineIndex();i++){
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
}
address.setText(strReturnedAddress.toString() + "Latitude: " + latitude + "\nLongitude: " + longitude);
addressStr = strReturnedAddress.toString();
}
else
{
address.setText("No address returned");
}
}
catch(IOException e){
e.printStackTrace();
address.setText("Can't get address");
}
}else{
gps.showSettingsAlert();
}
}
});
}
第二類
public class secondActivity extends AppCompatActivity {
Button convertBtn;
TextView latitudeTxt;
TextView longitudeTxt;
TextView latitudeDMS;
TextView longitudeDMS;
convertTo convert = new convertTo();
MainActivity mainActivity = new MainActivity();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
shareIt();
}
});
convertBtn = (Button) findViewById(R.id.convertBtn);
latitudeTxt = (TextView)findViewById(R.id.latitudeTxt);
longitudeTxt = (TextView)findViewById(R.id.longitudeTxt);
latitudeDMS = (TextView)findViewById(R.id.latitudeDMS);
longitudeDMS = (TextView)findViewById(R.id.longitudeDMS);
convertBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
所以我希望latitudeTxt
有從先前的屏幕(第一類)的緯度。我是一名學生並努力學習。
我嘗試添加這第一類:
secondActivity secondActivity = new secondActivity();
secondActivity.latitudeTxt.setText(latitude);
這沒有奏效。
我試圖在第二類
MainActivity mainActivity= new MainActivity();
latitudeTxt.setText(mainActivity.latitude);
你可以這樣做一個: http://stackoverflow.com/questions/14292398/how-to-pass-data-from-2nd-activity-to-1st-activity-when -pressed回,機器人 –