Android 如何从不同的方法传递变量对象
我想从Android 如何从不同的方法传递变量对象,android,variables,Android,Variables,我想从verifySMS方法调用loadPhoneNumber中的变量对象,但我得到了如下错误,如何解决此问题 下面是我的java代码: public void loadPhoneNumber() { if (ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION
verifySMS
方法调用loadPhoneNumber
中的变量对象,但我得到了如下错误,如何解决此问题
下面是我的java代码:
public void loadPhoneNumber() {
if (ContextCompat.checkSelfPermission(MainActivity.this,
android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String getSimNumber = telephonyManager.getLine1Number();
Log.d("Success", "Phone number :" + getSimNumber);
tvnope.setText(getSimNumber);
requestOTP(getSimNumber);
return;
} else {
requestStoragePermission();
}
}
private void verifySMS(){
Call<APIResponse> call=ServicesFactory.getService().getVerifySMS(getSimNumber,token);
call.enqueue(new Callback<APIResponse>() {
@Override
public void onResponse(Call<APIResponse> call, Response<APIResponse> response) {
if (response.isSuccessful()&&response.body().isSuccessful()){
Intent intent = new Intent(MainActivity.this, MainPageActivity.class);
startActivity(intent);
}
}
@Override
public void onFailure(Call<APIResponse> call, Throwable t) {
Toast.makeText(MainActivity.this, "Token salah,silahkan input lagi", Toast.LENGTH_SHORT).show();
}
});
}
public void loadPhoneNumber(){
if(ContextCompat.checkSelfPermission)(MainActivity.this,
android.Manifest.permission.READ_PHONE_STATE)==PackageManager.permission_grated){
TelephonyManager TelephonyManager=(TelephonyManager)getSystemService(Context.TELEPHONY_服务);
字符串getSimNumber=telephonyManager.getLine1Number();
日志d(“成功”,“电话号码:+getSimNumber”);
tvnope.setText(getSimNumber);
请求OTP(getSimNumber);
返回;
}否则{
requestStoragePermission();
}
}
私有无效验证SMS(){
Call Call=ServicesFactory.getService().getVerifySMS(getSimNumber,令牌);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()&&response.body().issusccessful()){
意向意向=新意向(MainActivity.this、MainPageActivity.class);
星触觉(意向);
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(MainActivity.this,“Token salah,silahkan input lagi”,Toast.LENGTH_SHORT.show();
}
});
}
在类中创建一个全局变量,并通过任何方法分配/访问它
public class YourClass
{
//global variable
String getSimNumber = "" ;
public void loadPhoneNumber()
{
/*Initial Work*/
//assign value into the global variable
getSimNumber = telephonyManager.getLine1Number();
/*Remaining Work*/
}
private void verifySMS()
{
//access the global variable
Call<APIResponse> call=ServicesFactory.getService().getVerifySMS(getSimNumber,token);
/*Remaining Work*/
}
}
公共类您的类
{
//全局变量
字符串getSimNumber=“”;
public void loadPhoneNumber()
{
/*初步工作*/
//将值赋给全局变量
getSimNumber=telephonyManager.getLine1Number();
/*剩余工作*/
}
私有无效验证SMS()
{
//访问全局变量
Call Call=ServicesFactory.getService().getVerifySMS(getSimNumber,令牌);
/*剩余工作*/
}
}
String getSimNumber应声明为类变量。不在方法内部,因为您希望跨方法访问。