Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Ann1212
0 / 0 / 0
Регистрация: 05.03.2015
Сообщений: 1
#1

Не работает кнопка - Программирование Android

05.03.2015, 22:05. Просмотров 421. Ответов 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;  
    }  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2015, 22:05     Не работает кнопка
Посмотрите здесь:

Не работает кнопка - Программирование Android
Решил поменять такой код : public class MainActivity extends Activity implements View.OnClickListener { private TextView...

Кнопка назад не работает - Программирование Android
Здравствуйте. Подскажите в чем может быть дело. При нажатии системной кнопки назад приложение вылетает :cry: Вот MainActivity ...

Не работает кнопка button - Программирование Android
Всем привет,создаю калькулятор. На что он ругается? хотел сделать проверку на true false. Создал tof (true of false) на boolean...

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

Не работает кнопка "Home" - Программирование Android
Здравствуйте. Аппаратные кнопки можно обрабатывать через KeyEvent например так @Override public boolean onKeyDown(int...

Кнопка - Программирование Android
1)Хочу создать свою кнопку дайте советы про кнопок(не простые &quot;button&quot;ы а с помощю картинок)? 2)и как сделать кнопки чтоб при нажатий...

Кнопка back - Программирование Android
Здравствуйте, не могу сделать так, чтобы по нажатию на кнопку back, экран возвращался к предыдущему layout. Сейчас при нажатии на back,...

Квадратная кнопка - Программирование Android
Здравствуйте...) Возможно тупой вопрос... но как мне сделать кнопку так чтоби она била всегда квадратная, но на разних разширениях...

собственная кнопка - Программирование Android
Доброго времени форумчане. Есть кнопка, элемент imageview.(jpg или png не важно.) Как сделать эффект нажатия, ну то-бишь чтоб мой...

Кнопка HOME - Программирование Android
Привет, однозначного ответа в гугле я так и не нашел, а код который находил не работает. У меня в приложении есть 2 активити: 1)...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
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()
хотя имхо кнопка выхода совершенно не нужна)
Yandex
Объявления
06.03.2015, 09:24     Не работает кнопка
Ответ Создать тему
Опции темы

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