Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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 在backback上使用Intent和call活动_Java_Android - Fatal编程技术网

Java 在backback上使用Intent和call活动

Java 在backback上使用Intent和call活动,java,android,Java,Android,所以我现在真的很困惑。我有两个活动:MainActivity和Main2Activity。我将文本视图的MainActivity中的值更改为“clicked”。然后我想调用Main2Activity,在那里更改一些内容,然后返回到MainActivity。当我返回到MainActivity时,我希望状态为我所称的Main2Activity。 当我离开(=>textview应该说“单击”而不是XML中定义的“hello world”时,如何从MainActivity返回状态? 以下是我目前的代码:

所以我现在真的很困惑。我有两个活动:
MainActivity
Main2Activity
。我将文本视图的
MainActivity
中的值更改为“clicked”。然后我想调用
Main2Activity
,在那里更改一些内容,然后返回到
MainActivity
。当我返回到
MainActivity
时,我希望状态为我所称的
Main2Activity
。 当我离开(=>textview应该说“单击”而不是XML中定义的“hello world”时,如何从
MainActivity
返回状态? 以下是我目前的代码: 主要活动:

 package com.plabsproject.testapp;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button btn1;
    private TextView textanzeige;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        if (savedInstanceState == null) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            btn1 = (Button) findViewById(R.id.button1);
            btn1.setOnClickListener(btnListener);
            textanzeige = (TextView) findViewById(R.id.helloworld);
            textanzeige.setOnClickListener(btnListener);
            }

        else if (savedInstanceState != null){
            Toast.makeText(this, "Test", Toast.LENGTH_SHORT).show();
        }
        }



        private View.OnClickListener btnListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (view == btn1) {
                    Intent wechselActivity = new Intent(view.getContext(), Main2Activity.class);
                    startActivity(wechselActivity);
                    finish();

                } else if (view == textanzeige) {
                    TextView ändereText = (TextView) findViewById(R.id.helloworld);
                    ändereText.setText("clicked");
                }
            }
        };


}
和主要活动:

    package com.plabsproject.testapp;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends AppCompatActivity {

    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        btn1 = (Button) findViewById(R.id.Activity2_Button);
        btn1.setOnClickListener(zurück_zur_Activty_1);

    }

    private View.OnClickListener zurück_zur_Activty_1 = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (view == btn1){
                Intent wechselActivity = new Intent(view.getContext(), MainActivity.class);
                wechselActivity.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
                startActivity(wechselActivity);
                finish();
            }
        }
    };
}
我认为,这个问题在某种程度上与
setFlags
有关,但由于某些原因,它没有按预期工作


谢谢大家!

您可以在
MainActivity
中使用
startActivityForResult()
而不是调用
startActivity()
,但不要在main activity中调用
finish()

然后在
Main2Activity
中,通过调用
setResult()
设置结果,这将返回到
MainActivity

有关更多详细信息,请访问该网站


当您调用
finish()
时,活动将从内存中删除,因此您不会得到以前的更改。

您可以在
main活动中使用
startActivityForResult()
,而不是调用
startActivity()
,但不要在主活动中调用
finish()

然后在
Main2Activity
中,通过调用
setResult()
设置结果,这将返回到
MainActivity

有关更多详细信息,请访问该网站


当您调用
finish()
时,该活动将从内存中删除,因此您不会得到以前的更改。

谢谢@Durga M!那正是我在看的。谢谢你提供的资源!谢谢@Durga M!那正是我在看的。谢谢你提供的资源!