我是Android编程和Java(以及英语:)的新手。当我自己学习时,有一些错误的东西。难道我做错了什么?我正在编程计算器。 TextView的默认值为0(我在strings.xml中设置它)。 MainActivity.java中有两种方法:
public void Click_c (View View){
TextView textview1 = (TextView) findViewById(R.id.textView1);
textview1.setText("0");
}
public void Click_1 (View View){
TextView textview1 = (TextView) findViewById(R.id.textView1);
if (textview1.getText().toString()=="0") {
textview1.setText("1");
} else {
textview1.setText(textview1.getText().toString()+"1");
}
}
程序启动后,按下Click_1,而textview为01.但我只想要1.这是Click_C之后的工作。
程序启动
我点击Click_C
点击Click_1
TextView为1没有问题
程序完成
程序启动
点击Click_1
Textview为01问题在这里。
程序完成
答案 0 :(得分:2)
这是因为所有时间都在if (textview1.getText().toString()=="0") {
失败并转到其他条件。那么
你应该改变
if (textview1.getText().toString()=="0") {
到
if (textview1.getText().toString().equals("0")) {
用于.equals()
比较的string
方法
答案 1 :(得分:1)
你应该首先了解字符串究竟字符串是什么Go through This
public void Click_1 (View View){
TextView textview1 = (TextView) findViewById(R.id.textView1);
if (textview1.getText().toString().equals("0")) {
textview1.setText("1");
} else {
textview1.setText(Integer.parseInt(textview1.getText().toString())+1);
}
}
使用yourstring.equals(newstring);
答案 2 :(得分:0)
你必须使用equals()
方法检查字符串,如下所示:
if (textview1.getText().toString().equals("0")) {
textview1.setText("1");
} else {
textview1.setText(textview1.getText().toString()+"1");
}
答案 3 :(得分:0)
替换此代码......
public void Click_1 (View View){
TextView textview1 = (TextView) findViewById(R.id.textView1);
if (textview1.getText().toString()=="0") {
textview1.setText("1");
} else {
textview1.setText(textview1.getText().toString()+"1");
}
}
带
public void Click_1 (View View){
TextView textview1 = (TextView) findViewById(R.id.textView1);
if (textview1.getText().toString().equals("0")) {
textview1.setText("1");
} else {
textview1.setText(Integer.parseInt(textview1.getText().toString())+1);
}
}