下面的代码试图获取两个EditText值,然后将它们转换为整数,然后将它们分开并输出该数字。我没有运气,而且每次都只是遇到路障后的路障。我不明白为什么从用户那里获得两个值并将它们分开似乎很难。如果有人有答案,请详细解释,因为我是Java / Android的新手,想要了解事情发生的原因。我现在感到很沮丧,因为我一直在为这一个问题敲打一个星期。
package com.simplesavinggoal;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;
public class MainActivity extends Activity {
int finalGoal;
EditText goalInput;
EditText monthsNum;
Button enterGoal;
TextView goalOutput;
int goalInputInt;
int monthsNumInt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
enterGoal = (Button) findViewById(R.id.btGetGoal);
goalOutput = (TextView) findViewById(R.id.tvSavingsGoalAmount);
goalInput = (EditText) findViewById(R.id.ndSavingsAmount);
monthsNum = (EditText) findViewById(R.id.ndMonthsNum);
enterGoal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goalInputInt = Integer.parseInt(goalInput.getText().toString());
monthsNumInt = Integer.parseInt(monthsNum.getText().toString());
finalGoal = goalInputInt / monthsNumInt;
goalOutput.setText(finalGoal);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:2)
setText
的{p> TextView
应为setText(CharSequence,TextView.BufferType)
。
无法输入int
数据类型
只需更改为
goalOutput.setText(""+finalGoal);
我认为finalGoal不应该是int
,因为/
的结果将是十进制的。
将数据类型更改为double
或其他
private double finalGoal;
答案 1 :(得分:0)
我认为,在android textview中设置文本必须是一个字符串。如果给出一个整数,那么它将使用给定的整数作为id搜索资源中的String。 所以,请改为:
goalOutput.setText(Integer.toString(finalGoal));