2017-03-17 4 views
1

최종 활동에서 점수가 표시되는 게임 그 전에는 사용자가 이름을 추가해야하는 입력 경고 상자가 표시되고 그 이름과 점수 데이터베이스에 가야합니다. 점수가 저장되고 있지만 이름은 저장되지 않습니다. 입력 경고 대화 상자에서 이름을 가져와 db.insertScore (Score, Name)에 설정하는 방법. 아직도 여기 작동하지 세계적으로도 이름을 선언하면 해당 조건에 변수의 범위를 제한하는 대화 상자에서 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(); 
} 

답변

0

입니다. 내가 너라면, name이라는 클래스 변수를 만든 다음 그 변수에 대한 getter와 setter를 만들 것이다. 대화 상자에서 setName(name)으로 전화를 걸 수 있습니다. 그런 다음 데이터를 데이터베이스에 저장하면 db.insertScore(Score,getName());으로 호출 할 수 있습니다. 또한 FWIW 변수는 소문자 여야합니다. 대문자는 일반적으로 클래스 이름 용으로 예약되어 있습니다.

+0

난 이미 getter와 내가에서는 setName (이름) –

+0

@PurshottamGusain 포스트 코드를 해결할 수없는 그 말을 호출했다 세터을 가지고 있지만 그것은 잘 작동합니다. – BlackHatSamurai

0

점수와 편집 된 이름을 데이터베이스에 저장하는 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); 
    } 
+0

작동이 멈췄습니다. 페이지가이 활동에 도달하면 중지됨 –