Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序:Android Studio-公式计算器_Android_Sdk - Fatal编程技术网

Android应用程序:Android Studio-公式计算器

Android应用程序:Android Studio-公式计算器,android,sdk,Android,Sdk,我想为min.-Version2制作一个简单的Android应用程序供本地使用。问题是我从未制作过Android应用程序。我现在已经安装了Android Studio和SDK工具,但在创建空白应用程序项目时会出错。事实上,我是一名VB.NET程序员,我也知道C#,PHP,但我以前从未为智能手机做过任何事情 我需要的是一个简单的计算器,它有两个文本框(例如,txt1(a)和txt2(b),作为双精度输入)、一个计算按钮和一个结果字段(作为双精度输入)。。请参见下面的示例图片 当聚焦文本框时,必须

我想为min.-Version2制作一个简单的Android应用程序供本地使用。问题是我从未制作过Android应用程序。我现在已经安装了Android Studio和SDK工具,但在创建空白应用程序项目时会出错。事实上,我是一名VB.NET程序员,我也知道C#,PHP,但我以前从未为智能手机做过任何事情

我需要的是一个简单的计算器,它有两个文本框(例如,
txt1
(a)和
txt2
(b),作为双精度输入)、一个计算按钮和一个结果字段(作为双精度输入)。。请参见下面的示例图片

当聚焦文本框时,必须出现一个数字键盘(如计算器),并带有一个小数点按钮。当我点击结果按钮时,输出必须按照以下公式计算和打印:

谁能告诉我怎么做?或者有人能告诉我在哪里写代码让这个应用程序工作吗


谢谢。

因此,首先您需要了解android布局XML文件的工作原理。然后添加4项:2个
EditText
s开始,然后添加一个
按钮
和文本“计算”,最后再添加一个
EditText
。为所有这些设置一些ID(即text1、text2、按钮、输出)。
另外,不要忘记将所有项目设置为“布局宽度”为“匹配父项”,而“布局高度”为“换行内容”(用于根据需要显示)

然后在主活动类中,在on
onCreate(Bundle savedInstanceState)
中:


希望我能帮忙,如果有任何错误,请通知我

由于使用了普通(而非数字)键盘,在分配a和b之前是否可以通过以下代码:
char separator=Globalization.CultureInfo.currentcurity.NumberFormat.NumberDecimalSeparator;if(separator='.'){text1.value.replace(“,”,”);text2.value.replace(“,”,“)}else if(separator='.',”){text1.value.replace(“,”,”);text2.value.replace(“,”,”);}
。。。因为人们在输入4.0和5.0时会犯严重错误,而不是4,0和5,0。我已经在Windows桌面版的应用程序中完成了这项工作,最后
result=Math.round(Math.sqrt(result),3)也可能?@LowLevel No,我们不需要所有分隔符,因为在我设置的代码中:
setInputType(InputType.TYPE\u CLASS\u NUMBER | InputType.TYPE\u NUMBER\u FLAG\u DECIMAL)
这意味着数字始终是有效的十进制数字,除非它是空的(我现在正在更新代码)@LowLevel没有
Math.round(result,3)
,但您可以使用
((double)Math.round(result*1000))/1000
我仍然收到一条错误消息:aidl丢失。我试着先把它修好。谢谢你的回复。
final EditText text1 = (EditText) findViewById(R.id.text1);
final EditText text2 = (EditText) findViewById(R.id.text2);
final EditText output = (EditText) findViewById(R.id.output);
text1.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
text2.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
output.setEditable(false);
Button calculate = (Button) findViewById(R.id.button);
calculate.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (text1.getText().isEmpty() || text2.getText().isEmpty()) return;
        double text1Value = Double.valueOf(text1.getText().toString());
        double text2Value = Double.valueOf(text2.getText().toString());
        double a, b;
        if (text1Value > text2Value) {
            a = text1Value;
            b = text2Value;
        } else {
            a = text2Value;
            b = text1Value;
        }
        double result = (a*a - b*b) / 4;
        result = Math.sqrt(result);
        output.setText(String.valueOf(result));
    }
});