多个图像按钮

时间:2017-02-24 20:43:10

标签: android imagebutton

我在android studio上创建了一个活动,我已经在那里添加了20 ImageButton个。我希望在每次点击图像时使用它,它将移动到新的活动。所有图像按钮的工作原理相同,我的应用程序是游戏,每个图像代表一个级别。我想构建一个将在所有按钮上使用的函数,并根据数据(图像按钮的属性)将用户移动到新活动,并将该数据用于新活动。每个级别都有自己的活动,主要活动是游戏菜单。

以下是我的代码:

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); } }); }

3 个答案:

答案 0 :(得分:1)

您需要提供更多信息和代码。但是,您可能希望尝试设置不同的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
}

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

答案 1 :(得分:0)

这样的东西?在你的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));
        }
    });
}

答案 2 :(得分:0)

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