Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从不同的方法传递变量对象_Android_Variables - Fatal编程技术网

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应声明为类变量。不在方法内部,因为您希望跨方法访问。