gpt4 book ai didi

java - 使用安卓计算

转载 作者:行者123 更新时间:2023-11-29 03:39:02 25 4
gpt4 key购买 nike

今天对个人应用有了一点想法。从未尝试过 Android,所以...感谢任何帮助。

我想要的是 2 个输入字段,在点击计算按钮后将这些值和 * 它们相互比较给出结果。

对我来说看起来不错,但就像我说的那样,我对 Java 不太擅长,而且对 Android 还不熟悉。我的问题是当我点击 Calc 按钮时它强制关闭/停止工作。提前致谢!

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"

>

<EditText android:id="@+id/fuel"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/fuel" />

<EditText android:id="@+id/numLaps"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/numLaps" />

<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/calc"
android:text="@string/calc"
android:onClick="calc"/>

<EditText
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/output"
android:inputType="number"
/>



</LinearLayout>

MainActivity.java

package com.example.iracingfuelcalc;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements android.view.View.OnClickListener {


Button calc;
EditText numLaps,fuel, output;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

fuel = (EditText)findViewById(R.id.fuel);
numLaps = (EditText)findViewById(R.id.numLaps);
output = (EditText)findViewById(R.id.output);
calc = (Button)findViewById(R.id.calc);


calc.setOnClickListener(this);

}
public void onClick(View arg0){

int fuelValue = -1;
try {
fuelValue = Integer.parseInt(fuel.getText().toString());
}
catch (NumberFormatException e)
{
//you don't have to do much here since fuelValue already has a default value (-1)
}

int lapsValue = -1;
try {
lapsValue = Integer.parseInt(numLaps.getText().toString());
}
catch (NumberFormatException e)
{

}

int result = 0;



result = fuelValue * lapsValue;

result += Integer.parseInt(output.getText().toString());
output.setText("" + result);

}

}

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">iRacing Fuel Calc</string>
<string name="fuel">Fuel per lap</string>
<string name="numLaps">Number of laps</string>
<string name="calc">Calculate</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_display_message">TEST</string>
<string name="output">0</string>

</resources>

最佳答案

您的第一个问题是您实际上并没有为output 赋值。在 onCreate() 中执行

output = (EditText)findViewById(R.id.output);

您可能还会遇到整数解析问题,因为任何非数字的内容都会抛出 NumberFormatException。确保仅输入数字或将 EditText 设置为以编程方式接受或验证。一种验证方法是使用 try/catch block 。例如

int fuelValue = -1;
try {
fuelValue = Integer.parseInt(fuel.getText().toString());
}
catch (NumberFormatException e)
{
//you don't have to do much here since fuelValue already has a default value (-1)
}

如果需要,您可以通过 android:inputType 将 EditText 设置为仅接受数字。 docs了解更多信息。

<EditText android:id="@+id/fuel"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/fuel"

android:inputType = "number"/>

关于java - 使用安卓计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com