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

Обработчик кнопки не работает - приложение компилируется, но крашится при запуске - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android CollapsingToolbarLayout http://www.cyberforum.ru/android-dev/thread1777957.html
Добрый вечер. Вот xml структура <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" android:fitsSystemWindows="true"
Android Отправить файл на сервер Всем привет! Первый раз пишу на форуме, уже несколько дней бился над отправкой файла на сервер, но никак не получается. Приведите пожалуйста пример кода для отправки и принятия на сервере (PHP), или какие-нибудь ссылки чтобы знать в какую сторону копать. http://www.cyberforum.ru/android-dev/thread1777947.html
Не импортируется AppCompatDelegate Android
Всем привет. Не видит android.support.v7.app.AppCompatDelegate В чем может быть проблема? Добавлено через 8 минут Короче, решение нашел оказывается еще давно, просто инвалидэйт забыл сделать. Если у кого такая же проблема, поднимите buildToolsVersion до самой новой версии (просто не помню с какой есть возможность импортировать AppCompatDelegate)
Сделать программу переводчик Android
Подскажите, пожалуйста, какие-либо туториалы, где можно стоздать простейший переводчик. Спасибо
Android Как будет меняться стек активити http://www.cyberforum.ru/android-dev/thread1777789.html
Есть две задачи: Task 1 и Task 2. Стек Activity для Task 1: A,B,C,D; Стек Activity для Task 2: X,Y,Z. Пожалуйста укажите следущее 1. Как будет выглядеть стек Activity для задач. Например, Task 1: A,B,C,D; Task 2: X,Y,Z; 2. Историю того, как будут изменяться стеки при нажатии кнопки BACK, пока не возвратимся в Home screen. Например: A,B,C,D - back -> A,B,C -back -> A,B - back -> A - back...
Android Как зафиксировать ширину элементов ListView Подскажите как отредактировать разметку элемента ListView. На данный момент есть следующее - checkBox, TextView и ImageView. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <CheckBox подробнее

Показать сообщение отдельно
alpine
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 3

Обработчик кнопки не работает - приложение компилируется, но крашится при запуске - Android

09.07.2016, 04:05. Просмотров 159. Ответов 2
Метки (Все метки)

Всем привет!
Собственно, проблема: у меня получилось сделать udp-listener за пару вечеров - слава яйцам!
Теперь я захотел добавить туда кнопку - нужно инкриментировать значение счётчика по нажатию кнопки
(вообще хочу массив, чтобы по нажатию кнопки в массив добавлялся новый элемент с текущим содержанием текста, полученного по udp, и по нажатию второй кнопки - либо сохрнять этот массив на диск, либо отправлять на почту через 3г - смотря что проще)
делал вот по этому тюториалу
http://simpledeveloper.com/how-to-bu...r-android-app/
- та же фигня.
и при попытке запуска с изменённм кодом приложение компилируется ок, но крашится.
сейчас код main_activity.java выглядит вот так:
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
public class MainActivity extends Activity {
//    Button button;
    Button button = (Button) findViewById(R.id.button);
    Button button2;
    int counter = 0;
    TextView textViewLitres;
    TextView textViewADC;
    private String ip;
    private int port;
    static TextView tv;
    public static Handler UIHandler;
    static
    {
        UIHandler = new Handler(Looper.getMainLooper());
    }
    public static void runOnUI(Runnable runnable) {
        UIHandler.post(runnable);
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.textView1);
        new Thread(new ClientListen()).start();
button.setOnClickListener(this);
        //button2.setOnClickListener(this);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //if(v==button){
                counter++;
                textViewLitres.setText(Integer.toString(counter));
                //    }
            }
        });
    }
 
}
если убрать строчку
button.setOnClickListener(this);
то приложение запускается, но и на клики не реагирует :-(

что в данном случае яляется this? по идее я это this указываю из того же места, что и в тюториале.
правда, есть вероятность, что кнопка лежит поверх какого-то другого элемента - это может вызвать такую ошибку?

Добавлено через 10 минут
на всякий случай, вот сообщение об ошибке:

07-09 03:00:09.470 17770-17770/com.example.red.udp_listener_test W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x416edd40)
07-09 03:00:09.472 17770-17770/com.example.red.udp_listener_test E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.red.udp_listener_test, PID: 17770
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.red.udp_listener_test/com.example.red.udp_listener_test.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2124)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1892)
at com.example.red.udp_listener_test.MainActivity.<init>(MainActivity.java:20)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.Instrumentation.newActivity(Instrumentation.java:1084)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2115)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
************at android.app.ActivityThread.access$800(ActivityThread.java:139)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
************at android.os.Handler.dispatchMessage(Handler.java:102)
************at android.os.Looper.loop(Looper.java:136)
************at android.app.ActivityThread.main(ActivityThread.java:5086)
************at java.lang.reflect.Method.invokeNative(Native Method)
************at java.lang.reflect.Method.invoke(Method.java:515)
************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
************at dalvik.system.NativeStart.main(Native Method)
07-09 03:00:11.436 17770-17770/? I/Process﹕ Sending signal. PID: 17770 SIG: 9


какое-то ZygoteInit...

Добавлено через 33 минуты
UPD
Нашел затык - объявил в самом начале класса правильно. а вот в onCreate надо было продублировать что ли - забыл.
Короче, теперь лучше - кнопка нажимается (знчение инкриментируется), но всё равно вылетает

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
public class MainActivity extends Activity implements OnClickListener {
    Button button;
    //Button button = (Button) findViewById(R.id.button);
    Button button2;
    int counter = 0;
    TextView textViewLitres;
    TextView textViewADC;
    private String ip;
    private int port;
    static TextView tv;
    public static Handler UIHandler;
    static
    {
        UIHandler = new Handler(Looper.getMainLooper());
    }
    public static void runOnUI(Runnable runnable) {
        UIHandler.post(runnable);
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.textView1);
        button = (Button) findViewById(R.id.button);
        new Thread(new ClientListen()).start();
 
        //button2.setOnClickListener(this);
        button.setOnClickListener(this);
    };
    @Override
    public void onClick(View v) {
        if(v==button){
        counter++;
            Log.d("button liters clicked", Integer.toString(counter));
        textViewLitres.setText(Integer.toString(counter));
            }
    };
}
на этот раз мешается строчка в обработчике onClick:
textViewLitres.setText(Integer.toString(counter));
и кажется, я даже догадываюсь, почему (странно, что он на этапе компиляции на это никак не ругается)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru