为什么我的文本输入不接受任何数据并且在 android studio 中显示为空?

发布于 2025-01-20 19:30:27 字数 1913 浏览 2 评论 0原文

当我尝试将输入数据与Workmanager一起使用时,它会引发一个例外:java.lang.numberformatexception:Input“”,这意味着所使用的变量是空的,但它们在GUI中填充。还通过将变量转换为int但相同的尝试,问题是它没有输入

mainActivity.java

public class MainAvtivity extends AppCompatActivity {
Button btNn;
EditText value1, value2;

public static final String VALUE1 = "value1";
public static final String VALUE2 = "value2";

@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    value1 = (EditText)findViewById(R.id.Firstvalue);
    value2 = (EditText) findViewById(R.id.Secondvalue);
    btNn = (Button)findViewById(R.id.calculate);

    String Value1 = value1.getText().toString().trim();
    String Value2 = value2.getText().toString().trim();

    Data DATa = new Data.Builder()
            .putString(VALUE1, Value1)
            .putString(VALUE2, Value2)
            .build();

    final OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(smabullsetwork.class)
            .setInputData(DATa)
            .build();

    btNn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            WorkManager.getInstance().enqueue(workRequest);
        }
    });
}

workmanager文件

public class calculator extends Worker {

public claculator(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {

    Data data = getInputData();
    String valuee1 = data.getString(MainActivity.VALUE1);
    String valuee2 = data.getString(MainActivity.VALUE2);

    int Value1 = Integer.parseInt(valuee1);
    int value2 = Integer.parseInt(valuee2);
    int result = value1*value2;
    DisplayNotiFication("Result is...", result);

    return Result.success();
}

When I try to use the input data with workmanager, it throws an exception: java.lang.NumberFormatException:Input"", it means that the variables used are empty but they are filled in the gui. Also tried by converting the variable to int but is the same, the problem is that it doesn't have the input

mainactivity.java

public class MainAvtivity extends AppCompatActivity {
Button btNn;
EditText value1, value2;

public static final String VALUE1 = "value1";
public static final String VALUE2 = "value2";

@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    value1 = (EditText)findViewById(R.id.Firstvalue);
    value2 = (EditText) findViewById(R.id.Secondvalue);
    btNn = (Button)findViewById(R.id.calculate);

    String Value1 = value1.getText().toString().trim();
    String Value2 = value2.getText().toString().trim();

    Data DATa = new Data.Builder()
            .putString(VALUE1, Value1)
            .putString(VALUE2, Value2)
            .build();

    final OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(smabullsetwork.class)
            .setInputData(DATa)
            .build();

    btNn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            WorkManager.getInstance().enqueue(workRequest);
        }
    });
}

workmanager file

public class calculator extends Worker {

public claculator(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {

    Data data = getInputData();
    String valuee1 = data.getString(MainActivity.VALUE1);
    String valuee2 = data.getString(MainActivity.VALUE2);

    int Value1 = Integer.parseInt(valuee1);
    int value2 = Integer.parseInt(valuee2);
    int result = value1*value2;
    DisplayNotiFication("Result is...", result);

    return Result.success();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水波映月 2025-01-27 19:30:27

您应该调用getText并在setOnClickListener中构建可变数据。

您的代码将是:

    public class MainAvtivity extends AppCompatActivity {
      Button btNn;
      EditText value1, value2;

      public static final String VALUE1 = "value1";
      public static final String VALUE2 = "value2";

      @SuppressLint("WrongViewCast")
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        value1 = (EditText) findViewById(R.id.Firstvalue);
        value2 = (EditText) findViewById(R.id.Secondvalue);
        btNn = (Button) findViewById(R.id.calculate);

        btNn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            String Value1 = value1.getText().toString().trim();
            String Value2 = value2.getText().toString().trim();

            Data DATa = new Data.Builder()
              .putString(VALUE1, Value1)
              .putString(VALUE2, Value2)
              .build();

            final OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(smabullsetwork.class)
              .setInputData(DATa)
              .build();
            WorkManager.getInstance().enqueue(workRequest);
          }
        });
      }

You should call getText and build your variable DATa inside the setOnClickListener.

Your code will be :

    public class MainAvtivity extends AppCompatActivity {
      Button btNn;
      EditText value1, value2;

      public static final String VALUE1 = "value1";
      public static final String VALUE2 = "value2";

      @SuppressLint("WrongViewCast")
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        value1 = (EditText) findViewById(R.id.Firstvalue);
        value2 = (EditText) findViewById(R.id.Secondvalue);
        btNn = (Button) findViewById(R.id.calculate);

        btNn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            String Value1 = value1.getText().toString().trim();
            String Value2 = value2.getText().toString().trim();

            Data DATa = new Data.Builder()
              .putString(VALUE1, Value1)
              .putString(VALUE2, Value2)
              .build();

            final OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(smabullsetwork.class)
              .setInputData(DATa)
              .build();
            WorkManager.getInstance().enqueue(workRequest);
          }
        });
      }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文