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

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

Восстановить пароль Регистрация
 
Kression
0 / 0 / 0
Регистрация: 06.09.2014
Сообщений: 37
02.03.2016, 21:06     Не работает кнопка #1
Решил поменять такой код :
Кликните здесь для просмотра всего текста
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
public class MainActivity extends Activity implements View.OnClickListener {
 
    private TextView tvOut;
    private Button btnOk;
    private Button btnCancel;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tvOut = (TextView) findViewById(R.id.tvOut);
        btnOk = (Button) findViewById(R.id.btnOk);
        btnCancel = (Button) findViewById(R.id.btnCancel);
 
        btnOk.setOnClickListener(this);
        btnCancel.setOnClickListener(this);
    }
 
public void onClick(View v) {
         switch (v.getId()) {
            case R.id.btnOk:
                tvOut.setText("Нажата кнопка ОК");
                break;
            case R.id.btnCancel:
                
                tvOut.setText("Нажата кнопка Cancel");
                break;
        }
    }
}

на такой :
Кликните здесь для просмотра всего текста
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
public class MainActivity extends Activity implements View.OnClickListener {
 
    private TextView tvOut;
    private Button btnOk;
    private Button btnCancel;
    MainActivity ocl = new MainActivity();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tvOut = (TextView) findViewById(R.id.tvOut);
        btnOk = (Button) findViewById(R.id.btnOk);
        btnCancel = (Button) findViewById(R.id.btnCancel);
 
        btnOk.setOnClickListener(ocl);
        btnCancel.setOnClickListener(ocl);
    }
 
 public void onClick(View v) {
       
        switch (v.getId()) {
            case R.id.btnOk:
               
                tvOut.setText("Нажата кнопка ОК");
                break;
            case R.id.btnCancel:
                
                tvOut.setText("Нажата кнопка Cancel");
                break;
        }
    }
}

Последний вариант вылетает, по идее все тоже самое, я только создал отдельный объект и его передаю в метод. Почему так?

Добавлено через 22 минуты
Я вот тут еще сделал, хотел как по книжке, но что то пошло не так... опять вылетает
Кликните здесь для просмотра всего текста
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
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity  {
 
    public TextView tvOut;
    public Button btnOk;
    public Button btnCancel;
     A ocl = new A();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tvOut = (TextView) findViewById(R.id.tvOut);
        btnOk = (Button) findViewById(R.id.btnOk);
        btnCancel = (Button) findViewById(R.id.btnCancel);
 
        btnOk.setOnClickListener(ocl);
        btnCancel.setOnClickListener(ocl);
    }
 
 public TextView getTvOut(){
        return tvOut;
    }
 
class A  implements View.OnClickListener {
    MainActivity e =new MainActivity();
    TextView q = e.getTvOut();
 
    @Override
    public void onClick(View view) {
        // по id определеяем кнопку, вызвавшую этот обработчик
        switch (view.getId()) {
            case R.id.btnOk:
                // кнопка ОК
                q.setText("Нажата кнопка ОК");
                break;
            case R.id.btnCancel:
                // кнопка Cancel
                q.setText("Нажата кнопка Cancel");
                break;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2016, 21:06     Не работает кнопка
Посмотрите здесь:

Android Кнопка отзывы
Кнопка Android
Android прозрачная кнопка
Android Кнопка back
Android Квадратная кнопка
Android Не работает кнопка "Home"
Не работает кнопка button Android
Не работает кнопка Android
Кнопка Back Android
Android Кнопка назад не работает
Кнопка назад Android
Android Плавающая кнопка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 642
02.03.2016, 21:22     Не работает кнопка #2
Kression, Activity не создают вручную. Их созданием заведует система. Для получения ссылки на внешний класс используй - MainActivity.this
DemD10
58 / 47 / 12
Регистрация: 03.09.2013
Сообщений: 424
02.03.2016, 21:24     Не работает кнопка #3
MainActivity ocl = new MainActivity();
Ну это шедевр конечно)) Для чего?
Kression
0 / 0 / 0
Регистрация: 06.09.2014
Сообщений: 37
03.03.2016, 01:05  [ТС]     Не работает кнопка #4
DemD10, Да я для лучшего понимания механизма передачи this на текущий объект решил поэксперементировать...
Yandex
Объявления
03.03.2016, 01:05     Не работает кнопка
Ответ Создать тему
Опции темы

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