2014-01-25 4 views
0

Я хочу использовать переменную в двух OnClickListener из двух кнопок. Я пытаюсь зарегистрировать пользователя, проверив его мобильную связь не с помощью проверочного кода. Я хочу использовать этот код в OnClickListener кнопки «Проверить», чтобы отобразить Dilog BoX. Как использовать эту целую переменную "verificationCode" в этих OnClickListeners. Ниже мой кодКак я могу использовать переменную в onClickListener из двух кнопок?

package com.deavnet.schoolapp; 

import com.deavnet.schoolapp.R; 
import com.deavnet.schoolapp.R.layout; 
import com.deavnet.schoolapp.R.menu; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.R.string; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.telephony.SmsManager; 
import java.util.Random; 



public class Verify extends Activity { 

    final int verificationCode=0; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.verify_activity); 

     // get the References of views 
     final EditText editTextMobileNo =(EditText)findViewById(R.id.editTextMobileNo); 
     final EditText editConfirmMobileNo=(EditText)findViewById(R.id.editTextConfirmMobileNo); 
     final Button btnSend=(Button)findViewById(R.id.buttonSend); 
     final EditText editTextVerificationCode=(EditText)findViewById(R.id.editTextVerificationCode); 
     final Button btnVerify=(Button)findViewById(R.id.buttonVerify); 


     btnSend.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       String mbno=editTextMobileNo.getText().toString(); 
       String confirmMbno=editConfirmMobileNo.getText().toString(); 
       String enteredCode=editTextVerificationCode.getText().toString(); 
       int verificationCodeEntered= Integer.parseInt(enteredCode); 


       if(mbno.equals("")) 
       { 
         Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show(); 
         return; 
       } 
       else if(mbno!=confirmMbno) 
       { 
        Toast.makeText(getApplicationContext(), "Mobile Number do not match", Toast.LENGTH_LONG).show(); 
        return; 
       } 
       else 
       { 
        int min = 1000; 
        int max = 9999; 
        Random r = new Random(); 
        int i1 = r.nextInt(max - min + 1) + min; 

        int verificationCode = sendSMS(mbno,i1); 
       } 
      } 
     }); 

     btnVerify.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       String enteredCode=editTextVerificationCode.getText().toString(); 
       int verificationCodeEntered= Integer.parseInt(enteredCode); 
       dilogfun(verificationCodeEntered); 
      } 
     }); 
    } 
    public int sendSMS(String mbno, int code) { 

     try{ 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage(mbno, null,""+code+"" , null, null); 
     } 
     catch(Exception e){ 
      Log.d("msg error", ""+e.getMessage()); 
      e.printStackTrace(); 
     } 
     Toast.makeText(getApplicationContext(), "Message Sent!", Toast.LENGTH_LONG).show(); 
     return code; 
    } 

    public boolean dilogfun(int verificationCodeEntered) 
    { 
     if(verificationCode==verificationCodeEntered) 
     { 
      // Creating alert Dialog with one Button 

      AlertDialog alertDialog = new AlertDialog.Builder(
        Verify.this).create(); 

      // Setting Dialog Title 
      alertDialog.setTitle("Regestration"); 

      // Setting Dialog Message 
      alertDialog.setMessage("Congratcs... Registration Successfull..."); 

      // Setting Icon to Dialog 
      alertDialog.setIcon(R.drawable.tick); 

      // Setting OK Button 
      alertDialog.setButton("OK", 
        new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, 
           int which) { 
          // Write your code here to execute after dialog 
          // closed 
          Toast.makeText(getApplicationContext(), 
            "Thank You...", Toast.LENGTH_SHORT) 
            .show(); 
         } 
        }); 

      // Showing Alert Message 
      alertDialog.show(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.login_activity, menu); 
     return true; 
    } 

} 

Надеясь для достижения лучших результатов ... Спасибо

ответ

0

Удалить int из следующих в вашем коде.

int verificationCode = sendSMS(mbno,i1); 

Поскольку вы уже объявили эту переменную глобально в следующей инструкции вашего кода.

final int verificationCode=0; 

После того, как вы удалили этот int то эта переменная также может быть использован в обоих слушателей.

EDIT

Также следуйте Manmohan's and Ari's комментарии.

+0

также необходимо окончательное удаление из int declartion – Manmohan

+0

«Конечное поле Verify.verificationCode не может быть назначено» - это ошибка, которую я получил после этого. –

+0

@Manmohan: Сработал, чтобы удалить финал. Спасибо –

Смежные вопросы