Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从“输入警报”对话框向数据库添加值_Android_Database_Android Studio_Android Database - Fatal编程技术网

Android 如何从“输入警报”对话框向数据库添加值

Android 如何从“输入警报”对话框向数据库添加值,android,database,android-studio,android-database,Android,Database,Android Studio,Android Database,这是一个在活动结束时显示分数的游戏,但在此之前,将显示输入警报框,用户需要在其中添加自己的姓名,并且该姓名和分数应进入数据库。正在存储分数,但未存储名称。如何从“输入警报”对话框中获取名称并将其设置为db.insertScore(Score,name)。即使将名称声明为全局名称,它仍然不起作用 这是我的密码 Bundle extra = getIntent().getExtras(); if (extra != null) { showInputDialog(

这是一个在活动结束时显示分数的游戏,但在此之前,将显示输入警报框,用户需要在其中添加自己的姓名,并且该姓名和分数应进入数据库。正在存储分数,但未存储名称。如何从“输入警报”对话框中获取名称并将其设置为db.insertScore(Score,name)。即使将名称声明为全局名称,它仍然不起作用 这是我的密码

  Bundle extra = getIntent().getExtras();
    if (extra != null)
    {
        showInputDialog();
        final int Score = extra.getInt("SCORE");
        final int totalQuestion = extra.getInt("TOTAL");
        int correctAnswer = extra.getInt("CORRECT");
        txtTotalScore.setText(String.format("SCORE : %d", Score));
        txtTotalQuestion.setText(String.format("PASSED : %d/%d", correctAnswer, totalQuestion));

        progressBarResult.setMax(totalQuestion);
        progressBarResult.setProgress(correctAnswer);

        //save score
       db.insertScore(Score,Name);
    }
}


protected void showInputDialog() {

    // get prompts.xml view
    LayoutInflater layoutInflater = LayoutInflater.from(Done.this);
    View promptView = layoutInflater.inflate(R.layout.dialog, null);
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Done.this);
    alertDialogBuilder.setView(promptView);

    final EditText editText = (EditText) promptView.findViewById(R.id.edittext);
    // setup a dialog window
    alertDialogBuilder.setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            String Name = editText.getText().toString();
        }
    });
    AlertDialog alert = alertDialogBuilder.create();
    alert.show();
}

没有添加它的原因是因为您在对话框中定义了
名称
变量,这将变量的范围限制为该条件。如果我是您,我将创建一个名为
name
的类变量,然后为该变量创建一个getter和setter。然后在对话框中,可以调用
setName(name)
。然后,当您将数据存储在数据库中时,可以调用
db.insertScore(Score,getName())。另外,FWIW变量应该是小写的。大写通常为类名保留。

不添加它的原因是您在对话框中定义了
Name
变量,从而将变量的范围限制在该条件下。如果我是您,我将创建一个名为
name
的类变量,然后为该变量创建一个getter和setter。然后在对话框中,可以调用
setName(name)
。然后,当您将数据存储在数据库中时,可以调用
db.insertScore(Score,getName())。另外,FWIW变量应该是小写的。大写通常保留给类名。

再创建一个函数,将分数和编辑的名称存储到数据库中。按照下面的代码操作

    Bundle extra = getIntent().getExtras();
    if (extra != null)
    {
        final int Score = extra.getInt("SCORE");
        final int totalQuestion = extra.getInt("TOTAL");
        int correctAnswer = extra.getInt("CORRECT");
        txtTotalScore.setText(String.format("SCORE : %d", Score));
        txtTotalQuestion.setText(String.format("PASSED : %d/%d", correctAnswer, totalQuestion));

        progressBarResult.setMax(totalQuestion);
        progressBarResult.setProgress(correctAnswer);



        //show dialog
        showInputDialog(Score);
    }


    protected void showInputDialog(final int score) {

        // get prompts.xml view
        LayoutInflater layoutInflater = LayoutInflater.from(Done.this);
        View promptView = layoutInflater.inflate(R.layout.dialog, null);
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Done.this);
        alertDialogBuilder.setView(promptView);

        final EditText editText = (EditText) promptView.findViewById(R.id.edittext);
        // setup a dialog window
        alertDialogBuilder.setCancelable(false)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        String Name = editText.getText().toString();

                        storeData(Name, score);
                    }
                });
        AlertDialog alert = alertDialogBuilder.create();
        alert.show();
    }


    protected void storeData(String name, final int score){
        db.insertScore(score,name);
    }

再创建一个函数,将分数和编辑的名称存储到数据库中。按照下面的代码操作

    Bundle extra = getIntent().getExtras();
    if (extra != null)
    {
        final int Score = extra.getInt("SCORE");
        final int totalQuestion = extra.getInt("TOTAL");
        int correctAnswer = extra.getInt("CORRECT");
        txtTotalScore.setText(String.format("SCORE : %d", Score));
        txtTotalQuestion.setText(String.format("PASSED : %d/%d", correctAnswer, totalQuestion));

        progressBarResult.setMax(totalQuestion);
        progressBarResult.setProgress(correctAnswer);



        //show dialog
        showInputDialog(Score);
    }


    protected void showInputDialog(final int score) {

        // get prompts.xml view
        LayoutInflater layoutInflater = LayoutInflater.from(Done.this);
        View promptView = layoutInflater.inflate(R.layout.dialog, null);
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Done.this);
        alertDialogBuilder.setView(promptView);

        final EditText editText = (EditText) promptView.findViewById(R.id.edittext);
        // setup a dialog window
        alertDialogBuilder.setCancelable(false)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        String Name = editText.getText().toString();

                        storeData(Name, score);
                    }
                });
        AlertDialog alert = alertDialogBuilder.create();
        alert.show();
    }


    protected void storeData(String name, final int score){
        db.insertScore(score,name);
    }

我已经有了getter和setter,我已经调用了setName(name),它说不能resolve@PurshottamGusain发布代码,但这应该可以很好地工作。我已经有了getter和setter,我已经调用了setName(name),它说不能resolve@PurshottamGusain发布代码,但应该可以正常工作。它已停止工作。当页面到达此活动时,StopEdit已停止工作。当页面到达此活动时,它停止