java - Android Studio Activity - 已关闭

标签 java android android-activity

我想知道如何获取从新 Activity 中单击的按钮...要解释我的问题,请查看图片

First activity

Second activity

我想知道您是否可以应用相同的代码而不必创建大量 Activity ...为此,我考虑采用您单击的按钮,然后使用 if 系统。

谢谢(抱歉英语不好。)

最佳答案

我认为您想要实现的是,当您单击 Button 时,它会启动一个新的 Activity 并在 SecondActivity 中您应该能够区分哪个 Button(第一个 Actvity 的)启动了 SecondActivity。如果是这样,那么下面的代码将起作用。

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    public static final String BUTTON1 = "BUTTON1";
    public static final String BUTTON2 = "BUTTON2";
    public static final String BUTTON3 = "BUTTON3";
    public static final String BUTTON4 = "BUTTON4";

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

        Button button1 = findViewById(R.id.button1);
        Button button2 = findViewById(R.id.button2);
        Button button3 = findViewById(R.id.button3);
        Button button4 = findViewById(R.id.button4);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(this, SecondActivity.class);
        switch (v.getId()) {

            case R.id.button1:
                intent.putExtra("key", BUTTON1);
                break;

            case R.id.button2:
                intent.putExtra("key", BUTTON2);
                break;

            case R.id.button3:
                intent.putExtra("key", BUTTON3);
                break;

            case R.id.button4:
                intent.putExtra("key", BUTTON4);
                break;
        }
        startActivity(intent);
    }
}

这里我们为每个按钮声明了一些常量。它将帮助我们确定 SecondActivity 是从哪个按钮启动的。我们会将常量值和 Intent 对象一起传递给 SecondActivity,然后对其进行验证。

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

public class SecondActivity extends AppCompatActivity {

    private static final String TAG = "SecondActivity";

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

        String intentKey = getIntent().getStringExtra("key");

        Log.d(TAG, "Intent Key Message: " + intentKey);
    }
}

上面的 SecondActivity 代码显示了 Activity 是从哪个按钮启动的。

关于java - Android Studio Activity - 已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60511030/

相关文章:

Java 变量 'm' 和 'p' 前缀

java - 从数组元素创建新 View ,不好的做法吗?

iphone - 关于在 iOS 和 Android 上开发多人游戏的建议?

JAVA - 基于另一个 CSV 文件读取 CSV 文件

java - 使用 JDBC 从 postgresql 获取消息响应

android - "Private"仅供自应用程序使用的 Intent 过滤器

android - 使用 Parcelable 类在 Activity 之间传递对象的 ArrayList

android - 在后台 30 分钟后停止 Android 杀死我的 Activity

android mainactivity和服务流程

java - 灰度图像显示红色 - android