试图从EditText中划分值

时间:2013-07-09 02:50:42

标签: android

下面的代码试图获取两个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;
    }
}

2 个答案:

答案 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));