我想知道如何从新活动中单击哪个按钮...要解释我的问题,请参见图片





我想知道您是否可以在不必创建大量活动的情况下应用相同的代码...为此,我考虑过要使用单击的按钮,然后使用if系统。

谢谢(对不起,英语不好。)

最佳答案

我认为您想要实现的是,当您单击Button时,它将启动一个新的Activity,并且在SecondActivity中,您应该能够区分(第一个Actvity的)哪个Button开始了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从哪个按钮启动。我们将带有意图对象的常量值传递给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/

10-11 15:06