android - 完成后重新启动存储卡游戏

标签 android

大家好,我是 Android 开发的初学者,因此我们将不胜感激!

问题

我正在制作一款纸牌游戏,其最后有一个无尽的纸牌晃动动画。我想添加的是,每当用户点击屏幕上的任何内容时,我想让游戏重新开始

详细信息

请注意,我有一个线性布局作为背景和几个按钮(这些是卡片)在线性布局上对齐(如果需要,我可以提供代码和 xml 文件)

我的解决方案

我认为可以工作的是一个“不可见”对话框,它可以单击结束当前游戏 Activity 并启动同一 Activity 的 Intent ..是这样吗?如果是这样,我怎样才能制作一个不可见的对话框(不是透明)?

如果您需要任何东西,请随时询问,我会尽快提供!

更新

这是我的代码部分,我想在其中执行上面所说的操作

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



}

我想要的是当屏幕上发生触摸事件时我希望游戏重新开始

最佳答案

如果我理解您的问题,您需要的是为您的 Activity 实现 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*/
            }
    }
}

监听器将尊重您的子组件的点击事件,并且仅在您点击可用空间时触发。

编辑:我添加了布局 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>

关于android - 完成后重新启动存储卡游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32846256/

相关文章:

android - 抽屉导航犹豫

android - openldap 2.4 使用 Syncrepl 配置复制

android - 无法使用ContentResolver查询方法,NoSuchMethodError

java - OnPostExecute 永远不会被调用

android - 如何在 Android 上从我的应用程序启动 URL?

android - 如何在屏幕中央显示 ImageView ?

android - 各种插件(例如 Kotlin)被标记为与 Android Studio 3.4 Beta 1 不兼容

java - 检查 Firebase 数据库中是否存在特定值

java - JSONObject 不显示在 ListView 上

javascript - 无法在 flutter webview 中打开 tel、mailto、whatsapp 链接?