android 在第二个活动中打开新活动[重复]

x7rlezfr  于 2023-06-04  发布在  Android
关注(0)|答案(3)|浏览(175)

此问题已在此处有答案

How to start new activity on button click(28回答)
7年前关闭。
到目前为止,从我看过的所有教程中,大多数都只能达到“按钮被点击”的程度。我需要第二个活动按钮来打开一个新活动。
我将这个类命名为fifth_layout.xml:

<Button
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="Amazon"
  android:drawableLeft="@drawable/amazon"
  android:drawableStart="@drawable/amazon"
  android:layout_weight="0.07"
  tools:ignore="HardcodedText"
  android:id="@+id/button10"
  android:textSize="35sp" />

之后,在我的FifthActivity.java中,我有:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class FifthActivity extends Activity {

  Button button;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fifth_layout);
    
    Button button = (Button) findViewById(R.id.button10);
   
    button.setOnClickListener(new View.OnClickListener() {
      public void onClick(View view) {}
    });
  }
}

我只需要能够打开一个新的空白活动的按钮。但当我点击按钮时,什么也没发生。我需要一个新的活动。我觉得代码是正确的,但我只是需要帮助,我可能做错了什么。

qojgxg4l

qojgxg4l1#

您必须使用Intent打开新Activity。假设您要从FifthActivity打开一个名为SixthActivity的Activity。
你应该使用这个:

public class FifthActivity extends Activity {

            Button button;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.fifth_layout);
            Button button = (Button) findViewById(R.id.button10);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                Intent intent = new Intent(FifthActivity.this,SixthActivity.java);
                FifthActivity.this.startActivity(intent);
                }
            });

        }
    }

希望这有帮助,问候。

56lgkhnf

56lgkhnf2#

你的onClickListener什么也不做,当然什么也不会发生。创建一个新的Activity(假设您将其命名为NewActivity,将其添加到AndroidManifest.xml并将以下代码添加到现有Activity:

button.setOnClickListener(new View.OnClickListener() {    
    public void onClick(View view) {
        final Intent intent = new Intent(FifthActivity.this, NewActivity.class);
        startActivity(intent);
    }
});

我有一种非常强烈的感觉,你有点迷失在Android开发中。我强烈建议你遵循Udacity的Android开发course

qni6mghb

qni6mghb3#

好了,现在您已经有了单个Activity及其布局,对吧?
你问的是“我如何用另一种布局启动另一个活动?”“
要做到这一点,我们将使用“意图”(将意图想象为活动如何相互交流,它们来回传递)
要创建Intent并开始,您需要以下几行:

Intent intent = new Intent(this, Target.class);
startActivity(intent);

这应该在你的onClick中起作用。
如果您在Android Studio中使用File>New>Activity创建了Activity,则应该已经将Activity放置在您的AndroidManifest.xml中,否则您需要自己添加它。

相关问题