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

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

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

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

03.03.2015, 19:23. Просмотров 296. Ответов 4
Метки нет (Все метки)

Необходимо при запуске окна, запрашивать от пользователя логин. Если логин введен - приложение продолжает свою работу. Если нет, то возвращает на предыдущее окно. На нажатии кнопки, вылетает с ошибкой.

Код:
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
public class TestOne extends Activity
{
    String UserName;
    Dialog EnterNameDialog;
        Context context = TestOne.this;
        String title = "Внимание!";
        EditText EnterNameEditText;
    
    public void onCreate(Bundle savedInstanceState) 
        {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test_activity);
        
        EnterNameDialog = new Dialog(context);
        EnterNameDialog.setTitle(title);  
        
        EnterNameDialog.setContentView(R.layout.dialog_view);        
        TextView text = (TextView) EnterNameDialog.findViewById(R.id.enter_name_tests_textview);
        text.setText("Прежде чем пройти тест, нужно ввести имя.");
        
        EnterNameEditText = (EditText) EnterNameDialog.findViewById(R.id.enter_name_tests_edittext);
        
        Button canceltext = (Button) EnterNameDialog.findViewById(R.id.enter_name_cancel_button);
        canceltext.setText("Отмена");
        
        Button accepttext = (Button) EnterNameDialog.findViewById(R.id.enter_name_accept_button);
        accepttext.setText("Принять");
        EnterNameDialog.show();
        } 
    
    public void onEnterNameAcceptButtonClick (View view)
    {
        if (EnterNameEditText.getText().toString().equals(""))
        {
            Toast.makeText(context, "Вы ничего не выбрали",Toast.LENGTH_LONG).show();
            TestOne.super.onBackPressed();
        }
        else
        {
            UserName = EnterNameEditText.getText().toString();
        }
    }
    
    public void onEnterNameCancelButtonClick (View view)
    {
        TestOne.super.onBackPressed();
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2015, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не срабатывает нажатие кнопки в Dialog (Программирование Android):

Определить нажатие кнопки Home и кнопки сворачивания приложения - Программирование Android
По аналогии с backPressed: @Override public void onBackPressed() { }

Alert Dialog закрывается при нажатии кнопки Назад - Программирование Android
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setCancelable(false); Диалог все равно закрывается,...

Нажатие на пункт меню срабатывает только со второго раза - Программирование Android
Может кто знает, почему нажатие на пункт меню срабатывает только со второго раза?

Долгое нажатие кнопки - Программирование Android
Нужно выполнять действие по зажатию клавиши: есть кнопка увеличения громкости, при её зажатии звук увеличивается. Пробовал longClick -...

Отловить нажатие кнопки Done - Программирование Android
Activity имеет элемент EditText ( android:inputType="number") подскажите как отловить нажатие DONE?

Реакция кнопки на нажатие - Программирование Android
Стандартная кнопка визуально реагирует на нажатие. А когда изменяешь фон кнопки, то всякая визуальная реакция исчезает. Как-то можно это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
03.03.2015, 20:11 #2
А что это за
onEnterNameAcceptButtonClick
onEnterNameCancelButtonClick?

Откуда они взялись?
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
03.03.2015, 20:20  [ТС] #3
Это onClick свойство в Layout, на котором EditText и две Button.

Java
1
2
3
4
5
6
7
8
9
10
11
<Button
        android:id="@+id/enter_name_cancel_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onEnterNameCancelButtonClick" />
    
    <Button
        android:id="@+id/enter_name_accept_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onEnterNameAcceptButtonClick" />
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
03.03.2015, 20:47 #4

Не по теме:

Пилятъ...постоянно забываю про этот android:onClick...



Добавлено через 5 минут
Так, а какая ошибка-то в логах?

Добавлено через 11 минут
Уберите "TestOne." что-ли...
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
03.03.2015, 21:03  [ТС] #5
Разобрался! Видимо, была путаница между Activity. Так как один layout содержал элементы для Dialog. А другой элементы для отображения после ввода логина пользователем.

Заменил:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void onEnterNameAcceptButtonClick (View view)
    {
        if (EnterNameEditText.getText().toString().equals(""))
        {
            Toast.makeText(context, "Вы ничего не выбрали",Toast.LENGTH_LONG).show();
            TestOne.super.onBackPressed();
        }
        else
        {
            UserName = EnterNameEditText.getText().toString();
        }
    }
    
    public void onEnterNameCancelButtonClick (View view)
    {
        TestOne.super.onBackPressed();
    }
на:
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
accepttext.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                if (EnterNameEditText.getText().toString().equals(""))
                {
                    Toast.makeText(context, "Вы ничего не выбрали",Toast.LENGTH_LONG).show();
                    TestOne.super.onBackPressed();
                }
                else
                {
                    UserName = EnterNameEditText.getText().toString();
                    EnterNameDialog.dismiss();
                }
            }
        });
        
        canceltext.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {
                TestOne.super.onBackPressed();
            }
        });
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2015, 21:03
Привет! Вот еще темы с ответами:

Не обрабатывается нажатие кнопки - Программирование Android
ImageView btn1 = new ImageView(this); btn1.setImageResource(R.drawable.gorod_cveta_button1); btn1.setLayoutParams(new...

AsyncTask, отловить нажатие кнопки - Программирование Android
Здравствуйте! Есть такой код class RequestTaskT extends AsyncTask&lt;String, Void, String&gt; { protected void onPreExecute() { ...

Обработать нажатие на кнопки в уведомлении - Программирование Android
Еще раз здравствуйте. Дело такое. Есть уведомление, в нем две кнопки. Они должны выполнять различные действия (вызов методов)....

Отловить нажатие кнопки Home - Программирование Android
Всем привет! Как отловить нажатие кнопки Home. В onKeyDown не получается.... Какие ещё варианты?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.03.2015, 21:03
Ответ Создать тему
Опции темы

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