Я получаю сообщение об ошибке "Извините! Приложение Android_Name (процесс com.pckge) неожиданно остановилось. Пожалуйста, повторите попытку."Принудительно закрыть? - PullRequest
0 голосов
/ 26 января 2011

Я пишу этот код и получаю сообщение об ошибке:

«Извините! Приложение Android_Name (процесс com.pckge) неожиданно остановилось. Пожалуйста, повторите попытку. Принудительное закрытие»

В чем ошибка?

package com.pckge;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class Now extends Activity implements View.OnClickListener {
    Button btn;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
       btn.setOnClickListener(this);
            updateTime();
        setContentView(btn);
    }

    @Override
    public void onClick(View view) {
        updateTime();
        // TODO Auto-generated method stub

    }

    private void updateTime() {
        btn.setText(new Date().toString());
        // TODO Auto-generated method stub

    }
}

Ответы [ 2 ]

6 голосов
/ 26 января 2011

Ваша строка

btn.setOnClickListener(this);

вызывается, когда 'btn' еще не инициализирован.Это NULL, так что вы не можете назвать его членом.Сначала назначьте ему настоящую кнопку.

(имейте в виду, что Button btn; только устанавливает тип)

цитируя @jems из комментария ниже, как я с этим согласен: Добавление строки btn = new Button(this) сразу после super.onCreate должен решить проблему, но лучше вместо этого определить ваш макет в xml

2 голосов
/ 26 января 2011

Вам нужно инициализировать вашу кнопку. Я предполагаю, что вы создали кнопку в XML и установили android: name = "buttonID".

Кнопка BTN; btn = findViewById (R.id.buttonID);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...