Я делаю небольшой проект, собираю несколько случайных кодов калькулятора из сети и улучшаю их, чтобы изучать разработку на Java и Android...
Итак, в настоящее время я пытаюсь реализовать точечную функцию для этого кода калькулятора, но она не работает должным образом. Вместо точки добавляется значение 46 (почему 46??). Не могли бы вы помочь мне создать функциональную точечную функцию?
Java-код:
package com.example.Elof_Calculator;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
public String str ="";
Character op = 'q';
double i,num,numtemp;
EditText showResult;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showResult = (EditText)findViewById(R.id.result_id);
}
public void btn1Clicked(View v){
insert(1);
}
public void btn2Clicked(View v){
insert(2);
}
public void btn3Clicked(View v){
insert(3);
}
public void btn4Clicked(View v){
insert(4);
}
public void btn5Clicked(View v){
insert(5);
}
public void btn6Clicked(View v){
insert(6);
}
public void btn7Clicked(View v){
insert(7);
}
public void btn8Clicked(View v){
insert(8);
}
public void btn9Clicked(View v){
insert(9);
}
public void btn0Clicked(View v){
insert(0);
}
public void btndotClicked(View v){
insert('.');
//error
}
public void btnplusClicked(View v){
perform();
op = '+';
}
public void btnminusClicked(View v){
perform();
op = '-';
}
public void btndivideClicked(View v){
perform();
op = '/';
}
public void btnmultiClicked(View v){
perform();
op = '*';
}
public void btnequalClicked(View v){
calculate();
}
public void btnclearClicked(View v){
reset();
}
private void reset() {
// TODO Auto-generated method stub
str ="";
op ='q';
num = 0;
numtemp = 0;
showResult.setText("");
}
private void insert(int j) {
// TODO Auto-generated method stub
str = str+Integer.toString(j);
num = Integer.valueOf(str).intValue();
showResult.setText(str);
}
private void perform() {
// TODO Auto-generated method stub
str = "";
numtemp = num;
}
private void calculate() {
// TODO Auto-generated method stub
if(op == '+')
num = numtemp+num;
else if(op == '-')
num = numtemp-num;
else if(op == '/')
num = numtemp/num;
else if(op == '*')
num = numtemp*num;
showResult.setText(""+num);
}
}
XML-код для кнопки с точкой:
<Button
android:id="@+id/Btndot_id"
style="?android:attr/buttonStyleSmall"
android:layout_width="70dp"
android:layout_height="64dp"
android:background="@drawable/buttonstyle1"
android:gravity="center_vertical|center_horizontal"
android:text="."
android:textColor="@android:color/white"
android:textSize="22sp"
android:onClick="btndotClicked"
/>
Вот функция Java и код конкретно для точечной функции, которая является основной ошибкой:
public void btndotClicked(View v){
insert('.');
}
Итак, каким должен быть код для точечной функции? Любая помощь приветствуется :))