0

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

2 回答 2

2

setTextTextView应该是setText(CharSequence,TextView.BufferType)

无法输入int数据类型

只需更改为

goalOutput.setText(""+finalGoal);

我认为 finalGoal 不应该是int因为结果/将是十进制的。将数据类型更改为double或其他

private double finalGoal;
于 2013-07-09T03:00:48.413 回答
0

我认为,在 android textview 中设置的文本必须是一个字符串。如果你给出一个整数,那么它会在资源中以给定的整数作为 id 搜索字符串。所以,改为这样做:

目标输出.setText(Integer.toString(finalGoal));

于 2013-07-09T03:00:41.783 回答