多个图像按钮
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 为每个视图分配一个标签,然后使用您的单个侦听器打开视图的标签以分支您想要的行为。
我在 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 为每个视图分配一个标签,然后使用您的单个侦听器打开视图的标签以分支您想要的行为。