【问题标题】:Make a String in java Global在java全局中创建一个字符串
【发布时间】:2021-02-01 13:26:22
【问题描述】:

我是一名 Android 开发人员,我制作了一个字符串,用于生成随机 6 位 OTP,该字符串位于 protected void onCreate(Bundle savedInstanceState) { 中,这是 java 程序中的第一件事。:

String otp = new DecimalFormat("000000").format(new Random().nextInt(999999));
Toast.makeText(getApplicationContext(), "Your OTP is " + otp, Toast.LENGTH_SHORT).show();

我的 java 程序中有另一个 public void,我必须在其中调用 OTP 字符串,但我不知道该怎么做。

我们将不胜感激任何类型的帮助。

【问题讨论】:

  • U 可以将字符串移出方法范围,并在其前面添加“静态”关键字。 (虽然这通常是糟糕的设计)
  • 提供更多onCreate() 的源代码以及调用onCreate() 的其他方法。

标签: java android string public-method


【解决方案1】:

将您的 String 变量定义为类中的类(静态)变量或实例变量。

示例解决方案

public class Main{
   String otp; //Define your variable here


   public void method1(){

      //Now you can access the variable otp and you can make changes

   }

  public void method2(){

     //Now you can access the variable otp and you can make changes


  }

}

【讨论】:

  • 谢谢,这个答案对我很有帮助。
  • @AnikethChavare 很高兴为您提供帮助,如果您觉得有帮助,请投票给答案。
【解决方案2】:

您可以将字符串定义为类数据成员,在 onCreate 方法中对其进行初始化,并让同一类中的每个人都访问该数据成员。 如:

String mOTP;

@Override
protected void onCreate(Bundle savedInstanceState) {
mOTP = new DecimalFormat("000000").format(new Random().nextInt(999999));
... Rest of code
}

或者,您可以创建另一个名为 Consts 或类似名称的类,并在那里创建一个静态字符串,然后从项目中的任何位置访问它。

public static class Consts{
     public static String OTP_STRING;
}

然后在mainActivity中

@Override
protected void onCreate(Bundle savedInstanceState) {
Consts.OTP_STRING = new DecimalFormat("000000").format(new Random().nextInt(999999));
... Rest of code
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多