Сделай результат 0, и складывай ответы вместо присвоения.Андрей Валентинович писал(а): как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
sum = 0;
...
sum += result;
Сделай результат 0, и складывай ответы вместо присвоения.Андрей Валентинович писал(а): как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
Всё равно один результат заменяет другой.doter.ua писал(а):Сделай результат 0, и складывай ответы вместо присвоения.Андрей Валентинович писал(а): как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
sum = 0;
...
sum += result;
Код: Выделить всё
package net.zak_uska.gridlayouts;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private int mCount = 0;
private float result = 0;
private String r ;
TextView mResult;
TextView mResult2;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResult = (TextView) findViewById(R.id.resmedia);
mResult2 = (TextView) findViewById(R.id.resmedia1);
}
public void onButtonClick(View view) {
//Вводим переменные, с которыми будем оперировать:
float result1 = 0;
float result2 = 0;
switch (view.getId()) {
case R.id.btn1:
result1 += ++mCount ;
result += 1 ; // это float для подсчета
r += 1; // это String и выводится как текст
result2 = result / result1;
break;
case R.id.btn2:
result1 += ++mCount ;
result += 2 ;
r += 2;
result2 = result / result1;
break;
case R.id.btn3:
result1 += ++mCount ;
result += 3 ;
r += 3;
result2 = result / result1;
break;
case R.id.btn4:
result1=+ ++mCount ;
result += 4 ;
r += 4;
result2 = result / result1;
break;
default:
break;
}
//настраиваем отображение результата:
mResult.setText( r );
//настраиваем отображение результата:
mResult2.setText("Средняя "+result2+ " есть");
}
}
Код: Выделить всё
View.OnClickListener mBtnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};
Код: Выделить всё
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View;
public class MainActivity extends Activity {
EditText etNum1;
EditText etNum2;
Button btnAdd;
Button btnSub;
Button btnMult;
Button btnDiv;
TextView tvResult;
String oper = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
View.OnClickListener mBtnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
float num1 =0;
float num2 =0;
float result =0;
if (TextUtils.isEmpty(etNum1.getText().toString())
|| TextUtils.isEmpty(etNum2.getText().toString())) {
return;
}
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
switch (v.getId()) {
case R.id.btnAdd:
oper = "+";
result = num1 + num2;
break;
case R.id.btnDiv:
oper = "/";
result = num1 / num2;
break;
case R.id.btnMult:
oper = "*";
result = num1 * num2;
break;
case R.id.btnSub:
oper = "-";
result = num1 - num2;
break;
default:
break;
}
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
}
};
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etNum1 = (EditText) findViewById(R.id.etNum1);
etNum2 = (EditText) findViewById(R.id.etNum2);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDiv = (Button) findViewById(R.id.btnDiv);
btnMult = (Button) findViewById(R.id.btnMult);
btnSub = (Button) findViewById(R.id.btnSub);
btnSub.setOnClickListener(mBtnClick);
btnDiv.setOnClickListener(mBtnClick);
btnMult.setOnClickListener(mBtnClick);
btnAdd.setOnClickListener(mBtnClick);
tvResult = (TextView) findViewById(R.id.tvResult);
}
}
ну, по сути, 6.0Е-4 и есть 0,0006. попробуйте явно преобразовать result к строковому типуРуслан777 писал(а):Подскажите пожайлуста как быть с таким результатом(код сильно не менял , как в уроке) result = num2 * 0.075/150/num1, ответ получается например = 6.0Е-4 а должно было 0.0006
Код: Выделить всё
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import static java.lang.Float.parseFloat;
import static java.lang.String.*;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bm, bp, bu, bd, bpr, br, bc; //17
TextView text1, text2;
//String oper1 = "";
char oper1 = '0';
double temp = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
b1 = (Button) findViewById(R.id.b1);
b2 = (Button) findViewById(R.id.b2);
b3 = (Button) findViewById(R.id.b3);
b4 = (Button) findViewById(R.id.b4);
b5 = (Button) findViewById(R.id.b5);
b6 = (Button) findViewById(R.id.b6);
b7 = (Button) findViewById(R.id.b7);
b8 = (Button) findViewById(R.id.b8);
b9 = (Button) findViewById(R.id.b9);
b0 = (Button) findViewById(R.id.b0);
bm = (Button) findViewById(R.id.bm);
bp = (Button) findViewById(R.id.bp);
bu = (Button) findViewById(R.id.bu);
bd = (Button) findViewById(R.id.bd);
bpr = (Button) findViewById(R.id.bpr);
br = (Button) findViewById(R.id.br);
bc = (Button) findViewById(R.id.bc);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
b6.setOnClickListener(this);
b7.setOnClickListener(this);
b8.setOnClickListener(this);
b9.setOnClickListener(this);
b0.setOnClickListener(this);
bp.setOnClickListener(this);
bm.setOnClickListener(this);
bd.setOnClickListener(this);
bu.setOnClickListener(this);
bpr.setOnClickListener(this);
br.setOnClickListener(this);
bc.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// float num1 = 0;
// float num2 = 0;
// float result = 0;
switch (v.getId()) {
//Дообавлени текста в поле text1
case R.id.b1:
text1.setText(text1.getText() + "1");
break;
case R.id.b2:
text1.setText(text1.getText() + "2");
break;
case R.id.b3:
text1.setText(text1.getText() + "3");
break;
case R.id.b4:
text1.setText(text1.getText() + "4");
break;
case R.id.b5:
text1.setText(text1.getText() + "5");
break;
case R.id.b6:
text1.setText(text1.getText() + "6");
break;
case R.id.b7:
text1.setText(text1.getText() + "7");
break;
case R.id.b8:
text1.setText(text1.getText() + "8");
break;
case R.id.b9:
text1.setText(text1.getText() + "9");
break;
case R.id.b0:
text1.setText(text1.getText() + "0");
break;
//Операции
case R.id.bp:
oper1 = '+';
temp = Double.valueOf(valueOf(text1.getText()));
text1.setText("");
break;
case R.id.bm:
oper1 = '-';
temp = Double.valueOf(valueOf(text1.getText()));
text1.setText("");
break;
case R.id.bu:
oper1 = '*';
temp = Double.valueOf(valueOf(text1.getText()));
text1.setText("");
break;
case R.id.bd:
oper1 = '/';
temp = Double.valueOf(valueOf(text1.getText()));
text1.setText("");
break;
case R.id.br:
case '+':
text2.setText(valueOf(temp + Double.valueOf(valueOf(text1.getText()))));
break;
case '-':
text2.setText(valueOf(temp - Double.valueOf(valueOf(text1.getText()))));
break;
case R.id.bc:
temp = 0;
text1.setText("");
text2.setText("");
break;
default:
break;
Только русский язык бы подучить.. "Расчитай среднею" - это сильно...Zak_uska писал(а):У меня проблема, выводится на экран null
и вот результат на Google Play http://bit.ly/1QZuj4C что мне и нужно было, школята рады и учителя)
Код: Выделить всё
package com.example.p0191_simplecalculator;
import android.content.ClipData;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText etNum1, etNum2;
Button btnAdd, btnSub, btnMult, btnDiv;
Button btnDelete, btnExit;
TextView tvResult;
String oper = "";
final int MENU_RESET_ID = 1;
final int MENU_QUIT_ID = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etNum1 = (EditText) findViewById(R.id.etNum1);
etNum2 = (EditText) findViewById(R.id.etNum2);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnSub = (Button) findViewById(R.id.btnSub);
btnMult = (Button) findViewById(R.id.btnMult);
btnDiv = (Button) findViewById(R.id.btnDiv);
btnDelete = (Button) findViewById(R.id.btnDelete);
btnExit = (Button) findViewById(R.id.btnExit);
tvResult = (TextView) findViewById(R.id.tvResult);
// Прописываем обработчик
btnAdd.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnMult.setOnClickListener(this);
btnDiv.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnExit.setOnClickListener(this);
}
// создание меню
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_RESET_ID, 0, "Сброс");
menu.add(0, MENU_QUIT_ID, 0, "Выход");
return super.onCreateOptionsMenu(menu);
}
//Обработка нажатий на пункты меню
public boolean onOptionsItemSelected (MenuItem item){
switch (item.getItemId()){
case MENU_RESET_ID:
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
Toast.makeText(this, "Очищено",Toast.LENGTH_SHORT).show();
break;
case MENU_QUIT_ID:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
float num1 = 0;
float num2 = 0;
float result = 0;
//Проверяем поля на пустоту
if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())){
Toast.makeText(this, "Введите значения в поля", Toast.LENGTH_SHORT).show();
return;
}
// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
// определяем нажатую кнопку и выполняем соответствующую операцию
// в oper пишем операцию, потом будем использовать в выводе
switch (v.getId()) {
case R.id.btnAdd:
oper = "+";
result = num1 + num2;
break;
case R.id.btnSub:
oper = "-";
result = num1 - num2;
break;
case R.id.btnMult:
oper = "*";
result = num1 * num2;
break;
case R.id.btnDiv:
oper = "/";
result = num1 / num2;
if (num2==0) {tvResult.setText("На ноль делить нельзя");
etNum2.setText("");
return; }
break;
case R.id.btnExit:
finish();
break;
case R.id.btnDelete:
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
break;
default:
break;
}
// формируем строку вывода
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result );
}
}
Код: Выделить всё
public class MainActivity extends AppCompatActivity
Код: Выделить всё
public class MainActivity extends AppCompatActivity implements View.OnClickListener
Привет, все нормально. Ты имплементировал интерфейс, теперь обязательно должен переопределить методы. Стань на строчку и нажми CTRL + I и выбери методы, студия их сгенерирует. После этого можно указывать Activity в обработчиках. Например btn.SetOnClickListener(this)Foxy писал(а):Ребят, всем привет
Вот столкнулся с проблемой уже не в первый раз, не получается использовать Activity как обработчик, но до этого исправлял все простым созданием отельного обработчика OnClickListener.
Вроде все как положено, изменяю вот эту строчку:на такую:Код: Выделить всё
public class MainActivity extends AppCompatActivity
Но она подчеркивается красным, всплывающая подсказка говорит:Код: Выделить всё
public class MainActivity extends AppCompatActivity implements View.OnClickListener
Class must either be declared abstract or implement abstract method
Погуглил, говорят надо дописать @Override.. Но что-то по-моему проблема в другом.
Как вариант, обернуть операцию в tryjohnrich писал(а):Если быть честным я реально начал с нуля и недавно но цель изучить хорошенько и как можно больше.
Если это всё ещё активно я не смог придумать или т.п. как мне сделать чтобы не возможно было делить на ноль, подскажите люди добрые.
Подробнее ...zzFraerOKzz писал(а):Понимаю что пишу не по теме но написал по теме месяц игнорируют пост поэтому уже простите пишу просто в активную тему Помогите с Уроком №3 ???