在 sharingIntent Extra 中设置由位置管理器检索的文本

Set text retreived by location manager inside sharingIntent Extra

想请教如何在里面设置文字TEXT_HERE

sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, TEXT_HERE);


我已经使用位置管理器通过 gps 检索了当前的经度和纬度。然后我将这两个值设置在 longitude_placeholderlatitude_placeholder 中以向用户显示他们当前的位置。 像这样:

@Override
public void onLocationChanged(Location location)
{
    TextView longitude = (TextView) findViewById(R.id.longitude_placeholder);
    TextView latitude = (TextView) findViewById(R.id.latitude_placeholder);

    longitude.setText("Longitude :" + location.getLongitude());
    latitude.setText("Latitude : " + location.getLatitude());
}

然后我制作了一个按钮 btn_share 并制作了 onClick 方法来实现 sharingIntent 功能。

public void onClick(View v)
{
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, LONGITUDE_HERE); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, LATITUDE_HERE); 
    startActivity(Intent.createChooser(sharingIntent, "Share via"));
}

现在是问题。我如何设置 LONGITUDE_HERELATITUDE_HERE 使用 onLocationChanged 方法检索到的值以通过单击按钮共享经度和纬度值?


如有任何帮助,我们将不胜感激。 提前致谢。

有两种方法可以做到:

1) 声明你的两个 TextView's global

2) 将您的 latitudelongitude 变量声明为全局变量,然后使用

 longitude = location.getLongitude();
 latitude = location.getLatitude();

之后您可以使用这两个变量来共享额外的文本或从您的文本视图中获取文本

更改位置的变量 static 并将其用于共享意图。

您可以为纬度和经度创建全局变量。

并修改

@Override
public void onLocationChanged(Location location)
{
TextView longitude = (TextView) findViewById(R.id.longitude_placeholder);
TextView latitude = (TextView) findViewById(R.id.latitude_placeholder);
lattitudeString = location.getLatitude();
longitudeString = location.getLongitude();
longitude.setText("Longitude :" + location.getLongitude());
latitude.setText("Latitude : " + location.getLatitude());
}

你可以用这两个变量替换LONGITUDE_HERELATITUDE_HERE

将 2 个字符串声明为全局字符串

字符串 LONGITUDE_HERE="";

字符串 LATITUDE_HERE="";

  @Override
  public void onLocationChanged(Location location)
  {
  TextView longitude = (TextView) findViewById(R.id.longitude_placeholder);
  TextView latitude = (TextView) findViewById(R.id.latitude_placeholder);

longitude.setText("Longitude :" + location.getLongitude());
latitude.setText("Latitude : " + location.getLatitude());

 LONGITUDE_HERE=""+location.getLongitude();
 LATITUDE_HERE=""+location.getLatitude();

  }

并在 onClick

  public void onClick(View v)
   {
     Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
      sharingIntent.setType("text/plain");
    if(LONGITUDE_HERE!=null&&LATITUDE_HERE!=null)
     {
   sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT1, LONGITUDE_HERE); 
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT2, LATITUDE_HERE); 

}
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}