Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从其他活动导航后无法查看静态数据_Java_Android_Android Activity_Text_Static - Fatal编程技术网

Java 从其他活动导航后无法查看静态数据

Java 从其他活动导航后无法查看静态数据,java,android,android-activity,text,static,Java,Android,Android Activity,Text,Static,我有三项活动。首先,我从from和to位置的文本视图调用第二个活动。从第二个活动中,我调用存储位置的第三个活动。我想在第一个活动的文本视图中显示此位置。 我正在文本视图上获取位置,但在选择“从位置”后,当我选择“定位”时,“从位置”的文本将消失。我将这些数据存储在singleton类中。 无法获取错误 结束活动(第一个活动) 从地图活动中选择(第三个活动) 私有类GetLocationAsync扩展了AsyncTask{ //布尔重复响应; 公共GetLocationAsync(双纬度、双经度)

我有三项活动。首先,我从from和to位置的文本视图调用第二个活动。从第二个活动中,我调用存储位置的第三个活动。我想在第一个活动的文本视图中显示此位置。 我正在文本视图上获取位置,但在选择“从位置”后,当我选择“定位”时,“从位置”的文本将消失。我将这些数据存储在singleton类中。 无法获取错误

结束活动(第一个活动)

从地图活动中选择(第三个活动)

私有类GetLocationAsync扩展了AsyncTask{
//布尔重复响应;
公共GetLocationAsync(双纬度、双经度){
//TODO自动生成的构造函数存根
x=纬度;
y=经度;
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
geocoder=新的geocoder(选择fromMapActivity.this,Locale.ENGLISH);
地址=地理编码器。getFromLocation(x,y,1);
str=新的StringBuilder();
if(Geocoder.isPresent()){
如果((addresses!=null)&&(addresses.size()>0)){
地址返回地址=地址。获取(0);
String localityString=returnAddress.getLocality();
字符串city=returnAddress.getCountryName();
字符串region_code=returnAddress.getCountryCode();
字符串zipcode=returnAddress.getPostalCode();
str.append(localityString+“”);
str.append(城市+地区+代码+);
str.append(zipcode+“”);
}
}否则{
}
}捕获(IOE异常){
Log.e(“tag”,e.getMessage());
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果){
从位置到位置的字符串;
试一试{
Address.setText(addresses.get(0).getAddressLine(0)
+地址。get(0)。getAddressLine(1)+“”;
//地址=(addresses.get(0).getAddressLine(0)
//+地址.get(0).getAddressLine(1)+“”;
if(GoSendData.instance.addressType==0){
地址=地址。获取(0)。获取地址行(0)
+地址。get(0)。getAddressLine(1)+“”;
GoSendData.instance.setmFromLocation(地址);
}
其他的
{
地址=地址。获取(0)。获取地址行(0)
+地址。get(0)。getAddressLine(1)+“”;
GoSendData.instance.setmToLocation(地址);
}
//toLocation=addresses.get(0).getAddressLine(0)+addresses.get(0).getAddressLine(1)+”;
//GoSendData.instance.setmToLocation(toLocation);
}捕获(例外e){
e、 printStackTrace();
}
}
@凌驾
受保护的void onProgressUpdate(void…值){
}
}

您设置的数据似乎是空的。但我可能错了。我建议您记录每个步骤。您可以使用Log类。特别是检查“address”字符串的值。

这里,我将数据从第三个活动传递到第一个活动。希望这对你有帮助

MainActivity.java中

private static final int REQ_CODE = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startActivityForResult(new Intent(this, SecondActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            String text = data.getStringExtra("text");
            Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
        }
    }
}
private static final int REQ_CODE = 1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    startActivityForResult(new Intent(this, ThirdActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            setResult(RESULT_OK, data);
            this.finish();
        }
    }
}
 @Override
    protected void onCreate(@Nullable Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent();
        intent.putExtra("text", "Passing data between activities.");
        setResult(RESULT_OK, intent);
        this.finish();
    }
SecondActivity.java中

private static final int REQ_CODE = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startActivityForResult(new Intent(this, SecondActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            String text = data.getStringExtra("text");
            Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
        }
    }
}
private static final int REQ_CODE = 1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    startActivityForResult(new Intent(this, ThirdActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            setResult(RESULT_OK, data);
            this.finish();
        }
    }
}
 @Override
    protected void onCreate(@Nullable Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent();
        intent.putExtra("text", "Passing data between activities.");
        setResult(RESULT_OK, intent);
        this.finish();
    }
ThirdActivity.java中

private static final int REQ_CODE = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startActivityForResult(new Intent(this, SecondActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            String text = data.getStringExtra("text");
            Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
        }
    }
}
private static final int REQ_CODE = 1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    startActivityForResult(new Intent(this, ThirdActivity.class), REQ_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == REQ_CODE)
    {
        if(resultCode == RESULT_OK)
        {
            setResult(RESULT_OK, data);
            this.finish();
        }
    }
}
 @Override
    protected void onCreate(@Nullable Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent();
        intent.putExtra("text", "Passing data between activities.");
        setResult(RESULT_OK, intent);
        this.finish();
    }

第一个和第二个activity中的onActivityResult(),但我不会直接调用第三个activity。我有第二个活动在中间。@rahi你能完整地发布你的三个类吗?这样我就可以检查它了。为什么在第三个活动中。为什么你要通过返回null;您可以使用SharedReference()或Application ClassI am在GoSendData onPost execute方法中设置数据。然后请正确发布您的问题。如果我们不知道您在做什么,我们如何帮助您?请参阅更新的答案。您应该检查这些值并将其打印出来。然后你可能会看到发生了什么。地址不是空的。我在两者中都获得了地址,但问题是在设置了from location之后,当我转到第三个活动时,设置为location to location也已设置,但无法查看from location。它已经不存在了。所以当您调用GoSendData.instance.getmFromLocation()和GoSendData.instance.getmToLocation()时,您正在获取地址?它不会启动第三个活动。。我想在第三个活动中选择位置,然后单击按钮将其发送到第一个活动@法拉兹·侯赛因