2010-12-14 5 views
1

Ну, у меня есть еще одна проблема, что я не могу найти решение ... У меня есть приложение, которое загружает файл main.xml при запуске, конечно. В нем несколько кнопок, и я хочу, чтобы кнопки переносили меня в другой файл XML. Я просто использовал метод setContentView (R.layout.newlayout.xml) для этого, и он отлично работает. Проблема возникает после этого. Если я ссылаюсь на любую из кнопок или других объектов в новом макете, приложение даже не закончит загрузку до того, как она выйдет из системы и закроется на эмуляторе. Однако, если я беру все ссылки на объекты, приложение работает нормально. Я могу переместить в новые макеты, но их кнопки ничего не могут сделать. Нужно ли создавать отдельный файл Java для каждого макета? Или я все делаю неправильно? Я стараюсь быть настолько конкретным, насколько могу ... Полагаю, вы могли бы сказать, что мне нужно иметь разные «страницы» в моем приложении, как на сайте.Переключение просмотров/макетов

+0

Проводка кода позволит нам быстро локализовать ошибку. –

ответ

0

Хорошо, для тех, кто там с той же проблемой и не сделали выяснил, как это сделать, как я уже сказал в своем комментарии к ylebre, мой сотрудник и я, наконец, узнали, как это сделать. Во-первых, мы добавили

implements OnClickListener

к классу, после

extends Activity 

затем, мы создали новый файл Java, и в начале файла он называется

setContentView(R.layout.newlayout); 

вместо основного. Затем мы сделали кнопку следующим образом:

Button button1 = (Button) findViewById(R.id.button01; 
button1.setOnClickListener(this); 

потом в коде:

public void onClick(View v) { 
     switch(v.getId()) { 
      case R.id.button01: 
       startActivity(new Intent(this, NEWJAVAFILE.class)); 
       break; 

     } 
    } 

И это все! Мы просто скопировали и ввели этот код в NEWJAVAFILE, изменили имена и т. Д., И мы смогли свободно перемещаться вперед и назад. Как сказал ylebre, весь код для нового действия находится в файле NEWJAVAFILE.java. OH и не забудьте добавить имя java-файла в манифест внутри тегов:

<activity android:name=".NEWJAVAFILE">   
    </activity> 

все кажется таким простым сейчас!

1

Я думаю, что то, что вы пытаетесь сделать, лучше всего решить, используя несколько java-файлов, каждый из которых определяет свою собственную активность Android.

Хотя в одном действии возможно иметь несколько макетов/представлений, это, как правило, делает код более сложным и трудным для чтения/отладки в будущем. Имея каждый «экран» в своем собственном файле, будет немного легче управлять всеми различными видами, которые вам нужны для жонглирования.

+0

Спасибо! Последние два или три часа я сотрудничал с другим программистом в моем офисе (у которого нет опыта работы в Android, немного на Java из колледжа и немного на C#), и мы НАКОНЕЦ разобрались, как заставить все это работать.Хотелось бы, чтобы мы сначала проверили ваш пост, потому что это именно то, что мы закончили! Я отправлю пример в ответ всем, у кого есть эта проблема. – Brandon

1

Кнопки и мнения только может относиться к упомянутым в файле текущей SetContentView() ..

и может проверить это путем создания кнопки и инициализации к R.id ... без настройки вида контента .. U получит силу близко ..

так, если и изменить файл XML у изгоняются снова инициализировать материал ....