-3

我有一个显示计算结果的结果文本视图。我想传递 this resulttextview 的值,以便它显示在 toast 中。

我有这个代码: Toast.makeText(MyCalcActivity.this,message, Toast.LENGTH_LONG).show();

但是这段代码显示了 firstnumberTxt 的值,我在其中键入要计算的第一个数字。:(

Button plusBtn = (Button) findViewById(R.id.plusButton1);
plusBtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        EditText inputOne = (EditText) findViewById(R.id.firstnumberTxt);
        String message = inputOne.getText().toString();

        EditText inputTwo = (EditText) findViewById(R.id.secondnumberTxt);
        String message2 = inputTwo.getText().toString();


        int first = Integer.parseInt(message);
        int second = Integer.parseInt(message2);

        int sum = first + second;
        TextView resultTxt = (TextView) findViewById(R.id.resultTextview);
        resultTxt.setText("Result is  " + sum);

        Toast.makeText(MyCalcActivity.this, message, Toast.LENGTH_LONG).show();
    }
});
}

请问有什么办法可以做到吗?

4

4 回答 4

0

我认为你是一个初学者,只是在不知情的情况下复制了代码。所以让我直接告诉你。

     //Actual toast
        Toast.makeText(MyCalcActivity.this, message, Toast.LENGTH_LONG).show();
    // Exaplaining toast
        Toast.makeText(1, 2, 3).show();
  • 在第一个参数1中,它将显示 toast 的活动。就像您在代码中看到的那样,MyCalcActivity.this这意味着它是您当前的活动,因为this.

  • 在第二个参数2中,它是您想要显示的内容。在您使用的代码中查看您的代码message,从您的代码中,我们可以知道 message 是 a ,它具有您所拥有string的 an 的值editText,即被称为inputOne。但你不想这样,对吧?你想要的价值textView resultTxt那么你为什么要使用message?!替换messageresultText.getText()以获得textview您想要的值。

  • 在最后一个参数中,即3. 它是 的长度toast message。你要多久?那是为了什么。在您的代码中,它设置为 Long toast 消息,我认为它大约是 3 秒。如果您想要更短的时间,请使用Toast.LENGTH_SHORT或自定义持续时间。

所以最后,这是你想要的代码。

Toast.makeText(MyCalcActivity.this, resultTxt.getText().toString(), Toast.LENGTH_LONG)
.show();

抱歉花了太长时间,但很乐意帮助你。我们都是从底层开始的。但是请下次再问之前搜索一下,有很多类似的问题和答案都是这样解释的。

于 2014-04-24T20:39:48.623 回答
0
Button plusBtn = (Button) findViewById(R.id.plusButton1);
plusBtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        EditText inputOne = (EditText) findViewById(R.id.firstnumberTxt);
        String message = inputOne.getText().toString();

        EditText inputTwo = (EditText) findViewById(R.id.secondnumberTxt);
        String message2 = inputTwo.getText().toString();


        int first = Integer.parseInt(message);
        int second = Integer.parseInt(message2);

        int sum = first + second;
        TextView resultTxt = (TextView) findViewById(R.id.resultTextview);


        resultTxt.setText(String.valueOf(sum));

        Toast.makeText(MyCalcActivity.this,"Result is" + resultTxt, Toast.LENGTH_LONG).show();
    }
});
}
于 2014-04-25T06:17:12.897 回答
0

现在您将消息放入 toast 中,即“firstnumberTxt”的值,而不是使用您刚刚完成计算的结果。

您需要做的就是在 toast 中使用结果:

Toast.makeText(MyCalcActivity.this, sum, Toast.LENGTH_LONG).show();

你也可以走很长的路来获取 TextView 中的内容:

Toast.makeText(MyCalcActivity.this, resultText.getText().toString(), Toast.LENGTH_LONG).show();
于 2014-04-24T20:41:23.750 回答
0

首先,您在吐司中调用消息

Toast.makeText(MyCalcActivity.this, message, Toast.LENGTH_LONG).show();

而是在 toast 中显示 sum 的值,

Toast.makeText(MyCalcActivity.this, sum, Toast.LENGTH_LONG).show();

或者,如果您想在 resultTextView 中显示该值,请执行

 Toast.makeText(MyCalcActivity.this, resultText.getText().toString(), Toast.LENGTH_LONG).show();
于 2014-04-24T23:05:26.837 回答