Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 多个图像按钮_Android_Imagebutton - Fatal编程技术网

Android 多个图像按钮

Android 多个图像按钮,android,imagebutton,Android,Imagebutton,我在android studio上创建了一个活动,我在那里放了一些类似于20ImageButtons的东西。我想使用它,因为每次点击一个图像,它将移动到一个新的活动。所有的图像按钮都基于相同的原理工作,我的应用程序是一个游戏,每个图像代表一个级别。我想构建一个函数,该函数将在所有按钮上使用,并根据数据(图像按钮的属性)将用户移动到新活动,并在新活动上使用该数据。每个关卡都有自己的活动,主要活动是游戏菜单 下面是我的代码: public ImageButton beatsCall; public

我在android studio上创建了一个活动,我在那里放了一些类似于20
ImageButton
s的东西。我想使用它,因为每次点击一个图像,它将移动到一个新的活动。所有的图像按钮都基于相同的原理工作,我的应用程序是一个游戏,每个图像代表一个级别。我想构建一个函数,该函数将在所有按钮上使用,并根据数据(图像按钮的属性)将用户移动到新活动,并在新活动上使用该数据。每个关卡都有自己的活动,主要活动是游戏菜单

下面是我的代码:

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,并且您希望为每个不同的按钮单击执行不同的操作(在您的情况下,启动一个新活动)

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,并在活动中对其进行了初始化

在新活动中,您可以获得如下信息:

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

您也可以查看此文件以了解有关意向的更多信息。

类似的内容?在你的xml中,让你的图片可以点击,并给他们这样的ID

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

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

请包含您的代码。
public-ImageButton-levelCall;public void CallLevel(){levelCall=(ImageButton)findViewById(R.id.level1);levelCall.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){Intent toy=new Intent(Levels.this,level1.class);startActivity(toy);}}
您可以编辑问题并将其作为代码添加到原始问题中吗。这提高了可读性和格式。我认为这会有所帮助。但是我还需要在新活动中使用数据,我的意思是我希望有一个活动可以根据ImageButton发送给它的图片改变它的外观若要将数据发送到下一个活动,并基于数据,您可以调用不同的片段或在新活动中执行某些操作。我已更新我的答案以包含发送数据。您可以根据发送数据的按钮自定义数据,并在新活动中使用数据。这有帮助吗?如果有任何问题,请告诉我们,如果有帮助,请将其标记为正确答案。我有一个问题,行:
String message=intent.getStringExtra(MainActivity.EXTRA_message)即使在我导入时,它也无法识别额外的_消息。你知道问题是什么吗?
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));
        }
    });
}