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

时间:2017-04-28 07:06:13

标签: android android-intent gps share locationmanager

我想询问如何在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_HERE方法检索的值设置LATITUDE_HEREonLocationChanged,以便通过点击按钮分享经度和纬度值?

任何帮助将不胜感激。 提前致谢。

4 个答案:

答案 0 :(得分:1)

将2个字符串声明为全局

字符串LONGITUDE_HERE ="&#34 ;;

String 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"));
}

答案 1 :(得分:0)

有两种方法可以做:

1)声明您的TextView'全局

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

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

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

答案 2 :(得分:0)

为位置更改变量static并在共享意图中使用它。

答案 3 :(得分:0)

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

并修改

@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