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

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

Войти
Регистрация
Восстановить пароль
 
Negor
57 / 56 / 4
Регистрация: 29.03.2010
Сообщений: 289
#1

Не могу задать банальные setOnClickListener - Android

30.06.2014, 19:54. Просмотров 873. Ответов 1
Метки нет (Все метки)

Делаю первые шаги в программировании под Andoriod. Запускаю в эмуляторе. Приложение падает. Как я понял - проблема в обрботчике клика на кнопке. Но понять почему оно падает не могу. Прошу помощи в исправлении ошибки. Лог

Код
06-30 11:47:59.476    1712-1712/ua.pp.bravo13.test E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: ua.pp.bravo13.test, PID: 1712
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ua.pp.bravo13.test/ua.pp.bravo13.test.MyActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            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:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at ua.pp.bravo13.test.MyActivity.onCreate(MyActivity.java:58)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
************at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
************at android.app.ActivityThread.access$800(ActivityThread.java:135)
************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
************at android.os.Handler.dispatchMessage(Handler.java:102)
************at android.os.Looper.loop(Looper.java:136)
************at android.app.ActivityThread.main(ActivityThread.java:5017)
************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:779)
************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
************at dalvik.system.NativeStart.main(Native Method)
Код MyActivity.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
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
package ua.pp.bravo13.test;
 
import android.content.DialogInterface;
import android.os.CountDownTimer;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
 
public class MyActivity extends ActionBarActivity {
 
    private static final int MILLIS_PER_SECOND = 1000;
    private static final int SECONDS_TO_COUNTDOWN = 30;
 
    private TextView        countdownDisplay;
    private CountDownTimer  timer;
    private Button          startButton;
 
    private void showTimer(final int countdownMills) {
        if (timer != null) {timer.cancel();};
        timer = new CountDownTimer(countdownMills, MILLIS_PER_SECOND) {
            @Override
            public void onTick(long l) {
                countdownDisplay.setText("" + l / MILLIS_PER_SECOND);
            }
 
            @Override
            public void onFinish() {
                countdownDisplay.setText("DONE");
            }
        };
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        countdownDisplay = (TextView) findViewById(R.id.textView);
        startButton = (Button) findViewById(R.id.startButton);
 
        OnClickListener onClckLstn = new OnClickListener(){
            public void onClick(View view) {
                try {
                    showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND);
                } catch (NumberFormatException e) {
                    // method ignores invalid (non-integer) input and waits
                    // for something it can use
                }
            }
        };
 
        try {
            startButton.setOnClickListener(onClckLstn);
        } catch (NumberFormatException e) {
            countdownDisplay.setText(""+e);
        }
 
 
        setContentView(R.layout.activity_my);
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.my, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // 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.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
AndroidManifest.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ua.pp.bravo13.test" >
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 19:54     Не могу задать банальные setOnClickListener
Посмотрите здесь:

Android Задать масштаб canvas
Android Как задать координаты анимации
Android SetOnClickListener исчезает глобальная переменная
Кто знает как отследить button.setOnClickListener? Android
Задать свои @Override Android
Задать папку Android
Задать высоту по контенту Android
Задать ScrollView программно Android
Ошибка Button.setOnClickListener Android
MediaPlayer задать громкость Android
Android Задать IP для Socket
Задать качество фотографии Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.07.2014, 10:32     Не могу задать банальные setOnClickListener #2
Цитата Сообщение от Negor Посмотреть сообщение
startButton
равен null, так как setContentView метод вызывается в конце. Переносите его в самый верх метода
Yandex
Объявления
01.07.2014, 10:32     Не могу задать банальные setOnClickListener
Ответ Создать тему
Опции темы

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