如何从活动中打开另一个活动?

时间:2017-12-09 21:01:57

标签: java android android-intent android-activity

我的问题如下。 我的应用程序有一个欢迎屏幕,用户点击“继续”按钮,然后进入下一个屏幕。下一个包含一个带有几个按钮的菜单。 我的问题是我无法在第二个屏幕上打开另一个活动(在第一个屏幕上打开正常) 或多或少这个方案如下 (| activity1>按钮继续|>> | activity2>按钮continue2 |>不响应) 恭维和测试apk上的银河系二重奏4.2.2

下面的代码 代码1屏幕(欢迎)。

public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Button button7 = (Button) findViewById(R.id.button7);

    button7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            setContentView(R.layout.activity_main4);
        }
    });}}

code 2 tela

public class Main4Activity extends AppCompatActivity {
private  Button prova;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);

    prova = (Button) findViewById(R.id.button5);

    prova.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent( Main4Activity.this, Main3Activity.class);
            startActivity(intent);
        }
    });

}}

2 tela code xml button

<Button
    android:id="@+id/button5"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/button4"
    android:layout_marginTop="11dp"
    android:text="tela 2"/>

3 个答案:

答案 0 :(得分:1)

您的问题是您无法使用setContentView(R.layout.activity_main4);打开另一个活动。您可以使用 startActivity 方法打开另一个活动。

  1. 删除 Main2Activity

    中的代码

    的setContentView(R.layout.activity_main4);

  2. 将此代码写入onClick

      

    Intent i = new Intent(Main2Activity.this,Main4Activity.this);

    startActivity(i);
    

    并在manifest档案

    中注册所有活动

    希望它可以帮助你

答案 1 :(得分:0)

您的问题是,您无法使用setContentView(R.layout.activity_main4);打开其他活动。您可以使用startActivity方法打开其他活动。

你可以试试这个。

1.删除Main2Activity

中的代码
setContentView(R.layout.activity_main4);

2.更改为

button7.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent i=new Intent(Main2Activity.this,Main4Activity.this);
        startActivity(i);
    }
});}}

答案 2 :(得分:0)

首先,我想确保你明白你在写什么。

F

在您的onclick中,您只需将Main2Activity的视图设置为activity_main4.xml的屏幕。但是你仍然站在Main2Activity(这意味着你在Main2Activity中使用view activity_main4.xml)。

在这种情况下,Main4Activity尚未初始化,按钮提示也未初始化。因此,当你按下prova按钮时,它就不会做任何事情。

其次,要解决您的问题,请初始化Main4Activity,您必须启动它。所以,而不是使用:

button7.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        setContentView(R.layout.activity_main4);
    }
});
Main2Activity中的

,它只更改视图,而不是Activity。你应该使用

setContentView(R.layout.activity_main4);

希望你能理解这一点!