如何操作从编辑文本记录的数据

时间:2017-11-08 15:38:43

标签: java android android-background

我希望用户输入深度并对其进行数学操作以获取 cost ,然后将其显示给用户。我该怎么做呢?(如果没有注意到,我不懂Java)。感谢。

 private void estimateCost(View view){
        EditText depth = findViewById(R.id.depth);
        TextView cost = findViewById(R.id.cost);
        String x = depth.getText().toString().trim();
        cost.setText(x);
    }

3 个答案:

答案 0 :(得分:2)

您需要解析从EditText获取的String,然后执行一些操作。

 private void estimateCost(View view){
    EditText depth = findViewById(R.id.depth);
    TextView cost = findViewById(R.id.cost);

    String x = depth.getText().toString().trim();  

    // parse to a number, i.e. int
    int depthValue = Integer.parseInt(x);

    // calculate total cost
    int totalCost = ...

    cost.setText(String.valueOf(totalCost));
}

答案 1 :(得分:0)

您可以创建一个按钮来获取该值。例如:

<Button
        android:id="@+id/bt_calc"
        android:text="calc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

然后你可以捕获click事件(把它放在onCreate方法中):

EditText depth = (EditText) findViewById(R.id.depth);
TextView cost = (TextView) findViewById(R.id.cost);
Button btCalc = (Button) findViewById(R.id.bt_calc);
int costValue;

btCalc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //in here you can

            //get the depth from the EditText:
            int depthValue = Integer.valueOf(depth.getText().toString());

            //do the operations (example):
            costValue = depthValue + 1;

            //and display the cost in the TextView:
            cost.setText(String.valueOf(costValue));
        }
});
祝你好运!

答案 2 :(得分:0)

如果您的输入也包含字母,则不会使用Integer.parseInt()

从中获取字母

使用此

int x = 0;
for (int i=0; i < str.length(); i++) {
    char c = s.charAt(i);
    if (c < '0' || c > '9') continue;
    x = x * 10 + c - '0';
}