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

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

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

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

05.03.2015, 22:05. Просмотров 444. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает кнопка (Программирование Android):

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

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

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

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

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

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

1
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 846
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
Привет! Вот еще темы с ответами:

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

Калькулятор. Кнопка "+" работает как кнопка "=", а не должна - C#
Суть проблемы в том что кнопка &quot;+&quot; работает по принципу &quot;=&quot;, то есть мы будем нажимать 5+5+++++, в итоге будет результат не 10, а 35. В...

кнопка не работает - ActionScript
kupit2.addEventListener(MouseEvent.CLICK, clickMascot1); function clickMascot1(event:MouseEvent) { if (i==1) { ...

Не работает кнопка - PHP
почему не работает кнопка сама кнопка &lt;form action='' methot='POST'&gt; &lt;input type='hidden' name='see' value='$row' /&gt; ...


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

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

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