我在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); } }); }
答案 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为每个视图分配一个标签,然后使用您的单个监听器打开视图的标签以分支您想要的行为。