我想在两个按钮的两个OnClickListener中使用一个变量。 我试图通过验证码验证他的手机号码来注册用户。我想在“验证”按钮的OnClickListener中使用此代码来显示Dilog BoX。 如何在这些OnClickListeners中使用此整数变量“verificationCode”。 以下是我的代码
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 :(得分:0)
从代码中的以下语句中删除int
。
int verificationCode = sendSMS(mbno,i1);
因为您已经在代码的以下语句中全局声明了此变量。
final int verificationCode=0;
删除此int
后,此变量也可用于两个侦听器。
修改强>
另请遵循Manmohan's and Ari's
条评论。