Приложение закрывается по нажатию на любую из кнопок.
Пробовал переписать код, несколько раз создавал проект заново.
Безрезультатно.
![Грустный :(](./images/smilies/icon_e_sad.gif)
В методе: protected void onCreate(Bundle savedInstanceState)George.Light писал(а):Помогите, все проблемы с предыдущими уроками решал сам, теперь не могу догнать что не так.
Приложение закрывается по нажатию на любую из кнопок.
Пробовал переписать код, несколько раз создавал проект заново.
Безрезультатно.
Код: Выделить всё
public class MainActivity extends Activity implements [b]View.[/b]OnClickListener
Math.round + примерыNik писал(а):Кто как убрал баги с вычислением 5.2 -3 = 2.1999998? если можно с кусками кода пожалста?
Подобная проблема у вас явно из-за непонимания очень базовых вещей в Java. Объекты сравниваются через equal, а не через ==. Равно действует только для примитивных типов данныхПодобная проблема была в php вроде когда типы данных не совпадали.
но его ответ я ещё не успел прочитать!!! Т.е. его ответа ещё не было.Foenix писал(а):Вообще-то, если ты не заметил, на вопрос уже ответили. Смысла повторяться я не вижу..
Спасибо за ответ. Да с Java я на Вы и пытаюсь изучить по урокам на этом сайте.no-- писал(а):Подобная проблема у вас явно из-за непонимания очень базовых вещей в Java. Объекты сравниваются через equal, а не через ==. Равно действует только для примитивных типов данныхПодобная проблема была в php вроде когда типы данных не совпадали.
Спасибо, действительно помогло, видимо я на скорую руку переписывал в 5й раз проект.trew писал(а):В методе: protected void onCreate(Bundle savedInstanceState)George.Light писал(а):Помогите, все проблемы с предыдущими уроками решал сам, теперь не могу догнать что не так.
Приложение закрывается по нажатию на любую из кнопок.
Пробовал переписать код, несколько раз создавал проект заново.
Безрезультатно.
вы забыли написать строку
tvResult = (TextView) findViewById(R.id.tvResult);
и в файле res/layout/main.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1"
написано было @+od/linearLayout1
Код: Выделить всё
package com.example.untitled1;
import java.math.BigDecimal;
import java.math.BigInteger;
import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import static android.content.DialogInterface.OnClickListener;
public class MyActivity extends Activity implements View.OnClickListener {
/**
* Called when the activity is first created.
*/
double a,b,c;
BigDecimal f;
int d;
TextView result;;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
Button btn5;
Button btn6;
Button btn7;
Button btn8;
Button btn9;
Button btntochka;
Button btn0;
Button btnsbros;
Button plus;
Button minus;
Button proizv;
Button del;
Button ravno;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
result=(TextView) findViewById(R.id.result);
btnsbros=(Button) findViewById(R.id.btnsbros);
plus=(Button) findViewById(R.id.plus);
minus=(Button) findViewById(R.id.minus);
proizv=(Button) findViewById(R.id.proizv);
del=(Button) findViewById(R.id.del);
ravno=(Button) findViewById(R.id.ravno);
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
btn3=(Button) findViewById(R.id.btn3);
btn4=(Button) findViewById(R.id.btn4);
btn5=(Button) findViewById(R.id.btn5);
btn6=(Button) findViewById(R.id.btn6);
btn7=(Button) findViewById(R.id.btn7);
btn8=(Button) findViewById(R.id.btn8);
btn9=(Button) findViewById(R.id.btn9);
btn0=(Button) findViewById(R.id.btn0);
btntochka=(Button) findViewById(R.id.btntochka);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btn0.setOnClickListener(this);
btntochka.setOnClickListener(this);
btnsbros.setOnClickListener(this);
plus.setOnClickListener(this);
minus.setOnClickListener(this);
proizv.setOnClickListener(this);
del.setOnClickListener(this);
ravno.setOnClickListener(this);
a=b=c=0;
d=0;
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnsbros: result.setText("");break;
case R.id.btn1: result.setText(result.getText()+"1");break;
case R.id.btn2: result.setText(result.getText()+"2");break;
case R.id.btn3: result.setText(result.getText()+"3");break;
case R.id.btn4: result.setText(result.getText()+"4");break;
case R.id.btn5: result.setText(result.getText()+"5");break;
case R.id.btn6: result.setText(result.getText()+"6");break;
case R.id.btn7: result.setText(result.getText()+"7");break;
case R.id.btn8: result.setText(result.getText()+"8");break;
case R.id.btn9: result.setText(result.getText()+"9");break;
case R.id.btn0: result.setText(result.getText()+"0");break;
case R.id.btntochka: result.setText(result.getText()+".");break;
case R.id.plus: a=Double.parseDouble(result.getText().toString());
d=1;
result.setText("");
break;
case R.id.minus: a=Double.parseDouble(result.getText().toString());
result.setText("");
d=2;
break;
case R.id.proizv: a=Double.parseDouble(result.getText().toString());
result.setText("");
d=3;
break;
case R.id.del: a=Double.parseDouble(result.getText().toString());
result.setText("");
d=4;
break;
case R.id.ravno: b=Double.parseDouble(result.getText().toString());
switch(d){
case 1: c=a+b;
f = BigDecimal.valueOf(c).setScale(4, BigDecimal.ROUND_HALF_DOWN);
result.setText(""+f);break;
case 2: c=a-b;
f = BigDecimal.valueOf(c).setScale(4, BigDecimal.ROUND_HALF_DOWN);
result.setText(""+f);break;
case 3: c=a*b;
f = BigDecimal.valueOf(c).setScale(4, BigDecimal.ROUND_HALF_DOWN);
result.setText(""+f);break;
case 4:
if(b!=0){
c=a/b;
f = BigDecimal.valueOf(c).setScale(4, BigDecimal.ROUND_HALF_DOWN);
result.setText(""+f);break;}
else {result.setText("Нельзя делить на 0");
}
}
}
}
}
если вы про округление способом math.round, то он не подходит. там определенное количество знаков.Foenix писал(а):про нули был вопрос кажется в этой теме уже, чуть выше.
Удаление незначащих нулей.Ziby писал(а):если вы про округление способом math.round, то он не подходит. там определенное количество знаков.Foenix писал(а):про нули был вопрос кажется в этой теме уже, чуть выше.
а как сделать в BigDecimal, чтобы нули не печатал(коли они последние в строке) и чтобы выводил сколько нужно знаков после запятой, а не всегда установленное значение?
ах да, собрал апк файл, но он на телефоне не запускается( не могу понять, в чем проблема(
trew писал(а):Удаление незначащих нулей.Ziby писал(а):если вы про округление способом math.round, то он не подходит. там определенное количество знаков.Foenix писал(а):про нули был вопрос кажется в этой теме уже, чуть выше.
а как сделать в BigDecimal, чтобы нули не печатал(коли они последние в строке) и чтобы выводил сколько нужно знаков после запятой, а не всегда установленное значение?
ах да, собрал апк файл, но он на телефоне не запускается( не могу понять, в чем проблема(
Код: Выделить всё
a=Float.parseFloat(result.getText().toString());
c=a+b;
f = BigDecimal.valueOf(c).setScale(4, BigDecimal.ROUND_HALF_DOWN);
result.setText(""+f);break;
Код: Выделить всё
double value = 127.0;
//123.456789000000000000;
String str1 = new DecimalFormat("#######.############").format(value);
Log.d(TAG, "str1: " + str1);
Log.d - это способ вывести информацию в лог. Пример показан в уроке 34.Ziby писал(а): я вообще понять не могу. Что за #? Log.d??
Я так понимаю, это некий способ логирования? А можно вас попросить подробней расписать о вашем коде?
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_margin="10dp"
android:stretchColumns="1" >
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvGenderInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/InputGender">
</TextView>
<RadioGroup
android:id="@+id/rgGender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/rbMale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/gender_male">
</RadioButton>
<RadioButton
android:id="@+id/rbFemale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender_female">
</RadioButton>
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvRaceInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/InputRace">
</TextView>
<RadioGroup
android:id="@+id/rgRace"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/rbWhite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/Race_white">
</RadioButton>
<RadioButton
android:id="@+id/rbBlack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/race_black">
</RadioButton>
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvCreat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/InputCreat">
</TextView>
<EditText
android:id="@+id/editTextCreat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:inputType="numberDecimal" >
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/InputAge">
</TextView>
<EditText
android:id="@+id/editTextAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:inputType="numberDecimal">
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvMass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/InputMass">
</TextView>
<EditText
android:id="@+id/editTextMass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:inputType="numberDecimal">
</EditText>
</TableRow>
<Button
android:id="@+id/btnCalc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:text="@string/ButtonCalculate">
</Button>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvOutCG"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="@string/OutputCG">
</TextView>
<TextView
android:id="@+id/tvOutVal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp">
</TextView>
</TableRow>
</TableLayout>
</RelativeLayout>
Код: Выделить всё
package calc.medical.gfr_calculator;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
EditText editTextCreat;
EditText editTextAge;
EditText editTextMass;
Button btnCalc;
TextView tvOutVal;
RadioGroup rgGender;
RadioGroup rgRace;
private double CG = 0.0, MDRD = 0.0, CKD = 0.0, Creat = 0.0, Sex = 0.0, Rase = 0.0, Age = 0.0, Mass = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextCreat = (EditText) findViewById(R.id.editTextCreat);
editTextAge = (EditText) findViewById(R.id.editTextAge);
editTextMass = (EditText) findViewById(R.id.editTextMass);
tvOutVal = (TextView) findViewById(R.id.tvOutVal);
rgGender = (RadioGroup) findViewById(R.id.rgGender);
rgRace = (RadioGroup) findViewById(R.id.rgRace);
btnCalc = (Button) findViewById(R.id.btnCalc);
btnCalc.setOnClickListener(this);
rgGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (rgGender.getCheckedRadioButtonId()) {
case R.id.rbMale:
Sex = 1.23;
break;
case R.id.rbFemale:
Sex = 1.04;
break;
}
}
});
//проверяем поля на пустоту
if (TextUtils.isEmpty(editTextCreat.getText().toString()) || TextUtils.isEmpty(editTextAge.getText().toString()) || TextUtils.isEmpty(editTextMass.getText().toString())) {
return;
}
// Читаем EditText и заполняем переменную числами
Creat = Double.valueOf(editTextCreat.getText().toString());
Age = Double.valueOf(editTextAge.getText().toString());
Mass = Double.valueOf(editTextMass.getText().toString());
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnCalc:
CG = (((140-(Age))*(Mass)*(Sex)/(Creat)));
DecimalFormat df = new DecimalFormat("#0.##");
tvOutVal.setText(df.format(CG));
}
}
}
Выложи файл activity_main.xmlGannicus24 писал(а):Помогите пожалуйста с кодом. Пишу простую прогу для расчета по формуле. В итоге расчетов выводится сообщение "не число". Кто подскажет что я не так делаю?