2012-05-11 5 views
-1

Я некоторое время занимался разработкой приложения, и все шло хорошо. Однако, когда я добавил onCLickListener для кнопки в одном из моих .xml-файлов (не main.xml), он начал сбой, как только я попытался открыть его в эмуляторе. Весь код для onClickListener такой же, как и для остальных двух кнопок, которые у меня есть. вот код для моего проблемного слушателя:Сбой активности Android сразу после запуска

Button button3 = (Button)findViewById(R.id.button3); 
    button3.setOnClickListener(bt3listener); 


    private OnClickListener bt3listener = new OnClickListener(){ 
    public void onClick(View v){ 
     setContentView(R.layout.main); 
    } 
}; 

Единственным способом, что любой из этого кода отличается от другого моего onClickListeners является то, что он ссылается на кнопке в другом файл, чем main.xml. Он выходит из строя, прежде чем дисплеи любых из пользовательского интерфейса, кроме черного экрана с моим именем проекта на вершине, и дает мне подсказку, которая говорит «Ун

+0

ВСЕГДА Отправлять LogCat ЗДЕСЬ –

+0

Вы запустите этот Applicatin с кодом и затмения не дают каких-либо ошибок. Отлично. вы используете переменную, объявляемую после использования, и программа будет работать успешно. –

+0

post ur полный код – KMI

ответ

1

для кнопки в одном из моих XML-файлов (не main.xml),

Он должен быть ИНТОМ макета вы установили с setContentView() для того, чтобы восстановить его с помощью findViewById()this или использовать inflater, чтобы получить макет, в котором находится Button, и используйте возвращенный view с findViewById().

viewReturnedByInflater.findViewById() 
0

вам нужно инициализировать OnClickListener, прежде чем назначить его на кнопку.

+0

Не инициализировать его в третьей строке кода? –

+0

"button3.setOnClickListener (bt3listener);" Это должно произойти после инициализации. – Rawkode

0

Попробуйте

private OnClickListener bt3listener = new OnClickListener(){ 
public void onClick(View v){ 
    setContentView(R.layout.main); 
} 
}; 
Button button3 = (Button)findViewById(R.id.button3); 
button3.setOnClickListener(bt3listener); 
0

Это дает ошибку, потому что, когда Button button3 = (Button)findViewById(R.id.button3); он пытается найти кнопку, но так как кнопка находится в другом макете XML, он выходит из строя.

Вы должны infalte другой макет или добавить кнопку на основной раскладке

Смежные вопросы