嘿伙计们,我是Android开发的初学者,所以任何帮助都会非常感激!
问题
我正在制作纸牌游戏,最后它有一张摇动动画的卡片无休止地完成。我要添加的是每当用户点击屏幕上的任何内容时,我想让游戏重新开始
详情
请注意,我将线性布局作为背景,并在线性布局上对齐了几个按钮(这些是卡片)(如果需要,我可以提供代码和xml文件)
我的解决方案
我认为可行的是一个"隐形"对话框可以在点击结束当前游戏活动并启动相同活动的意图..这是正确的,如果是这样,我怎么能做一个不可见的对话框(不透明)?
如果您需要什么,请不要犹豫,我会尽快提供!
更新
这是我的代码中我想要做的事情我在上面说过
if (correctCounter>2){
for(int ct=0;ct<memoCards.length;ct++){
memoCards[ct].setClickable(false);
}
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
int temp = (int) (Math.random() * 5);
Animation shake = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.shake);
memoCards[temp].startAnimation(shake);
}
});
}
},0,1000);
}
我想要的是在屏幕上进行触摸事件时我想让游戏重新开始
答案 0 :(得分:4)
如果我理解你的问题,你需要的是为你的活动实现OnClickListener,即
public class MainActivity extends AppCompatActivity implements OnClickListener{
ImageView b1;
TextView b2;
int correctCounter=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout ln2 = (LinearLayout) findViewById(R.id.ll1);
ln2.setOnClickListener(this);
b1 = (ImageView) findViewById(R.id.imageView);
b2 = (TextView) findViewById(R.id.textView);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
correctCounter++;
if (correctCounter>20) {
View parent = (View) v.getParent();
parent.performClick();
}
}
});
b2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
correctCounter++;
if (correctCounter>20) {
View parent = (View) v.getParent();
parent.performClick();
}
}
});
}
@Override
public void onClick(View v) {
if (correctCounter>20) {
/*Restart Activity*/
}
}
}
听众会尊重您的孩子组件&#39;单击事件,仅在单击可用空间时触发。
编辑:我添加了一个布局xml,以便更好地理解逻辑
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ll1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" />
</LinearLayout>