【问题标题】:how to add value into database taken from input alert dialog box如何从输入警报对话框中将值添加到数据库中
【发布时间】:2017-03-17 17:18:15
【问题描述】:

这是一个在活动结束时显示分数的游戏,但在此之前会显示输入警告框,用户需要在其中添加他们的姓名,并且该姓名和分数应该进入数据库。分数正在被存储,但不是名称。如何从输入警报对话框中获取名称并将其设置在 db.insertScore(Score,Name) 上。即使将 Name 声明为 global 它仍然无法正常工作 这是我的代码

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

【问题讨论】:

    标签: android database android-studio android-database


    【解决方案1】:

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

    【讨论】:

    • 我已经有 getter 和 setter 我曾调用 setName(name) 它说无法解决
    • @PurshottamGusain 发布代码,但这应该可以正常工作。
    【解决方案2】:

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

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

    【讨论】:

    • 它已停止工作。当页面到达此活动时它停止了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多