2012-05-05 3 views
0

Итак, у меня есть 2 файла макета XML.
Одно меню, а другое - приложение.
Итак, теперь у меня есть несколько кнопок на одном файле XML и некоторые другие кнопки на другом файле.Кнопка setOnClickListener, вызывающая крах приложения

Так что этот код работает:

setContentView(R.layout.main); 
    start = (Button) findViewById(R.id.button1); 

    start.setOnClickListener(this); 

Но если изменить вид и написать это:

setContentView(R.layout.random); 
    add_person = (Button) findViewById(R.id.add); 

    add_person.setOnClickListener(this); //crash here 

аварий приложение!

+1

Можете ли вы пост 'random.xml'? – MByD

+0

Конечно. Xml создается eclipse с помощью gui builder. http://codeviewer.org/view/code:25c0 – Dennis

+0

изменить идентификатор кнопки для добавления в xml и метод onclick – Akram

ответ

3

add_person null, так что получите Nullpointer Exception и у вас есть Button в random.xml, который добавлен как id?

если нет, то добавьте

<Button android:id="@+id/add" ... /> 
+0

да, я загрузил xml в комментарии. поэтому другая кнопка тоже не работает. и он также имеет правильный id в xml и в классе java – Dennis

0

попытку после очистки текущего проекта от Проект-> Clean.

или вы можете использовать

(Button)random.findViewById(R.id.add); 

вместо

(Button) findViewById(R.id.add); 
0

Вы должны реализовать класс как onClickListner, как это:

public class <ClassName> extends Activity implements OnClickListener{ 

    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.main); 
      start = (Button) findViewById(R.id.button1); 
      start.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
      switch (v.getId()) { 
       case R.id.button1: 
        //Hear Yor Logic on Click Event. 
        break;  
      }   
    } 
} 
Смежные вопросы