Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Ann1212
0 / 0 / 0
Регистрация: 05.03.2015
Сообщений: 1
1

Не работает кнопка

05.03.2015, 22:05. Просмотров 511. Ответов 1
Метки нет (Все метки)

Я новичок, создавала калькулятор по уроку и решила добавить туда пару кнопок а главный экран (кнопки Удалить и Выход) Кнопка "Удалить" работает не совсем корректно(не удаляет текст, написанный в tvResult), а Выход вообще не работает(нажимаю и ничего не происходит) Где моя ошибка?
Экран калькулятора:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/tlen" 
    android:scaleType="centerCrop" 
    > 
 
    <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/linearLayout1" 
        android:layout_marginLeft="10pt" 
        android:layout_marginRight="10pt" 
        android:layout_marginTop="3pt"> 
        <EditText 
            android:layout_weight="1" 
            android:layout_height="wrap_content" 
            android:layout_marginRight="5pt" 
            android:id="@+id/etNum1" 
            android:layout_width="match_parent" 
            android:inputType="numberDecimal"> 
        </EditText> 
        <EditText 
            android:layout_height="wrap_content" 
            android:layout_weight="1" 
            android:layout_marginLeft="5pt" 
            android:id="@+id/etNum2" 
            android:layout_width="match_parent" 
            android:inputType="numberDecimal"> 
        </EditText> 
    </LinearLayout> 
    <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/linearLayout2" 
        android:layout_marginTop="3pt" 
        android:layout_marginLeft="5pt" 
        android:layout_marginRight="5pt"> 
        <Button 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:layout_weight="1" 
            android:text="+" 
            android:textSize="8pt" 
            android:id="@+id/btnAdd"> 
        </Button> 
        <Button 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:layout_weight="1" 
            android:text="-" 
            android:textSize="8pt" 
            android:id="@+id/btnSub"> 
        </Button> 
        <Button 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:layout_weight="1" 
            android:text="*" 
            android:textSize="8pt" 
            android:id="@+id/btnMult"> 
        </Button> 
        <Button 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:layout_weight="1" 
            android:text="/" 
            android:textSize="8pt" 
            android:id="@+id/btnDiv"> 
        </Button> 
    </LinearLayout> 
 
    <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_gravity="bottom|center_horizontal" 
        android:gravity="bottom"> 
 
        <TextView 
            android:layout_height="wrap_content" 
            android:layout_width="match_parent" 
            android:layout_marginLeft="5pt" 
            android:layout_marginRight="5pt" 
            android:textSize="12pt" 
            android:layout_marginTop="3pt" 
            android:id="@+id/tvResult" 
            android:gravity="center_horizontal" 
            android:layout_weight="50"> 
        </TextView> 
 
        <Button 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Удалить" 
            android:id="@+id/btnDelete" 
            android:layout_marginLeft="10dp" 
            android:layout_marginRight="10dp" 
            android:layout_weight="0.5" /> 
 
        <Button 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Выход" 
            android:id="@+id/btnExit" 
            android:layout_marginLeft="10dp" 
            android:layout_marginRight="10dp" 
            android:layout_weight="0.5" 
            android:onClick="onClick" /> 
 
    </LinearLayout> 
 
 
</LinearLayout>
MainActivity калькулятора
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
package com.example.ann.Calculator;  
 
import android.os.Bundle;  
import android.support.v7.app.ActionBarActivity;  
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;  
 
import java.math.BigDecimal;  
import java.text.DecimalFormat;  
 
 
public class MainActivity extends ActionBarActivity implements View.OnClickListener {  
 
    final int MENU_RESET_ID = 1;  
    final int MENU_QUIT_ID = 2;  
     Double num1;  
 
     Double num2;  
    EditText etNum1;  
     BigDecimal result=null;  
    EditText etNum2;  
     Double num3;  
    Button btnAdd;  
    Button btnSub;  
    Button btnMult;  
    Button btnDiv;  
    Button btnExit;  
    Button btnDelete;  
 
    TextView tvResult;  
 
 
    String oper = "";  
 
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.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);  
        btnExit = (Button) findViewById(R.id.btnExit);  
        btnDelete = (Button) findViewById(R.id.btnDelete);  
 
        tvResult = (TextView) findViewById(R.id.tvResult);  
 
        btnAdd.setOnClickListener(this);  
        btnSub.setOnClickListener(this);  
        btnMult.setOnClickListener(this);  
        btnDiv.setOnClickListener(this);  
        btnExit.setOnClickListener(this);  
        btnDelete.setOnClickListener(this);  
    }  
    @Override  
    public void onClick(View v) {  
        // TODO Auto-generated method stub  
 
 
 
 
        // Проверяем поля на пустоту  
        if (TextUtils.isEmpty(etNum1.getText().toString())  
                || TextUtils.isEmpty(etNum2.getText().toString())) {  
            return;  
        }  
 
 
        // читаем EditText и заполняем переменные числами  
        num1 = Double.parseDouble(etNum1.getText().toString());  
        num2 = Double.parseDouble(etNum2.getText().toString());  
 
        // определяем нажатую кнопку и выполняем соответствующую операцию  
        // в oper пишем операцию, потом будем использовать в выводе  
        switch (v.getId()) {  
            case R.id.btnAdd:  
                oper = "+";  
                num3 = num1 + num2;  
                result= BigDecimal.valueOf(num3).setScale(3, BigDecimal.ROUND_HALF_DOWN);  
                break;  
            case R.id.btnSub:  
                oper = "-";  
                num3 = num1 - num2;  
                result= BigDecimal.valueOf(num3).setScale(4, BigDecimal.ROUND_HALF_DOWN);  
                break;  
            case R.id.btnMult:  
                oper = "*";  
                num3 = num1 * num2;  
                 result= BigDecimal.valueOf(num3).setScale(4, BigDecimal.ROUND_HALF_DOWN);  
                break;  
            case R.id.btnDiv:  
                oper = "/";  
                num3 = num1 / num2;  
                result= BigDecimal.valueOf(num3).setScale(4, BigDecimal.ROUND_HALF_DOWN);  
                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;  
 
 
 
 
 
        }  
 
        // формируем строку вывода  
 
        String str1 = new DecimalFormat("#######.############").format(result);  
        tvResult.setText(num1 + " " + oper + " " + num2 + " = " + str1);  
 
    }  
 
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.menu_main,  
                menu);  
        menu.add(0, MENU_RESET_ID, 0, "Убрать ВСЕ числа");  
        menu.add(0, MENU_QUIT_ID, 0, "Выход");  
        return true;  
    }  
 
    @Override  
    public boolean onOptionsItemSelected(MenuItem item) {  
        switch (item.getItemId()) {  
            case MENU_RESET_ID:  
// очищаем поля  
                etNum1.setText("");  
                etNum2.setText("");  
                tvResult.setText("");  
                break;  
            case MENU_QUIT_ID:  
finish();  
 
                  
                break;  
 
            // Handle action bar item clicks here. The action bar will  
            // automatically handle clicks on the Home/Up button, so long  
            // as you specify a parent activity in AndroidManifest.xml.  
 
        }  
 
        return true;  
    }  
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2015, 22:05
Ответы с готовыми решениями:

Не работает кнопка
Решил поменять такой код : public class MainActivity extends Activity implements...

Не работает кнопка button
Всем привет,создаю калькулятор. На что он ругается? хотел сделать проверку на true false....

Кнопка назад не работает
Здравствуйте. Подскажите в чем может быть дело. При нажатии системной кнопки назад приложение...

Android кнопка “войти” работает только в главной активити (Navigation Drawer)
в приложении несколько активити с Navigation Drawer, в nav_header главной сделал onClickListener на...

Не работает кнопка next AVD в ANDROID STUDIO
проблема с AVD в ANDROID STUDIO когда я выбираю устройство кнопка next просто неработает так как в...

1
androbro
344 / 304 / 68
Регистрация: 17.10.2014
Сообщений: 903
06.03.2015, 09:24 2
Ann1212,
Цитата Сообщение от Ann1212 Посмотреть сообщение
<Button
* * * * * *android:layout_width="fill_parent"
* * * * * *android:layout_height="wrap_content"
* * * * * *android:text="Выход"
* * * * * *android:id="@+id/btnExit"
* * * * * *android:layout_marginLeft="10dp"
* * * * * *android:layout_marginRight="10dp"
* * * * * *android:layout_weight="0.5"
* * * * * *android:onClick="onClick" />
Первое что бросилось в глаза, эт android:onClick="onClick" он здесь при вашем методе обработки нажатий совершенно не нужен.

Удалить работает не совсем корректно потому что у Вас в обработчике же имеется строка:
Цитата Сообщение от Ann1212 Посмотреть сообщение
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + str1);
а выход может не работать потому что недоступен контекст, попробуйте
Java
1
MainActivity.finish()
хотя имхо кнопка выхода совершенно не нужна)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2015, 09:24

Не работает кнопка "Home"
Здравствуйте. Аппаратные кнопки можно обрабатывать через KeyEvent например так @Override ...

Не работает кнопка Ctrl + левая кнопка мыши в Excel
Не работает кнопка ctrl + левая кнопка мыши в excel.Не выделяются ячейки.Хотя на рабочем столе или...

Не работает кнопка "ответить" в комментариях. + не работает AJAX обновление при добавление комментария
Проблемы эти начались после обновления движка с 9.8 до 10.5. Все загрузил, все поставил, шаблон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru