多个图像按钮

Multiple Image Buttons

我在 android 工作室创建了一个 activity,我在那里放了大约 20 ImageButton 的东西。我想使用它,因为每次单击图像时它都会移动到新的 activity。所有图像按钮的工作原理相同,我的应用程序是一个游戏,每个图像代表一个级别。我想构建一个将在所有按钮上使用的功能,并将根据数据(图像按钮的属性)将用户移动到新的 activity 并在新的 activity 上使用该数据.每个关卡都有自己的activity,主activity是游戏的菜单。

下面是我的代码:

public ImageButton beatsCall; public void Beats(){ beatsCall=(ImageButton)findViewById(R.id.beats); beatsCall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent toy = new Intent(Levels.this,Beats.class); startActivity(toy); } }); }

您需要提供更多信息和代码。但是,您可能想尝试设置一个不同的 onClickListener,然后将所有 imageButtons 设置为该侦听器,该侦听器将根据单击的按钮执行操作。例如,假设您有 4 个 imageButtons 并且您想要为每个不同的按钮单击执行不同的操作(在您的情况下,开始一个新的 activity)。

View.OnClickListener listener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                //Start activity 1 here, for example
                Intent intent = new Intent(this, YourNewActivity1.class);
                String message = v.getId().toString;
                intent.putExtra(EXTRA_MESSAGE, message);
                startActivity(intent);
                break;
            case R.id.textView2:
                //Start activity 2 here
                break;
            case R.id.textView3:
                //Start activity 3 here
                break;
            case R.id.textView4:
                //Start activity 4 here
        }

    }
};

button1.setOnClickListener(listener);
button2.setOnClickListener(listener);
button3.setOnClickListener(listener);
button4.setOnClickListener(listener);

这是假设您在布局文件中设置了 imageButtons 并且在 activity 中初始化了它们。

在您的新 activity 中,您可以收到这样的消息:

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
if (some condition with message){
      do something
}

您也可以查看此 documentation 以获取有关意图的更多信息。

是这样的吗?在您的 xml 中,使您的图片可点击并为其提供 ID,如下所示...

<ImageView
            android:id="@+id/level_1_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            />

然后在 Activity 的 onCreate

中调用这样的函数
private void setupButtons() {
    findViewById(R.id.level_1_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(getApplication(), LevelOne.class));
        }
    });

    findViewById(R.id.level_2_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(getApplication(), LevelTwo.class));
        }
    });
}

您可以通过 android:tag 为每个视图分配一个标签,然后使用您的单个侦听器打开视图的标签以分支您想要的行为。