Я пишу приложение, которое я хочу, чтобы запустить второй класс с другим макетом при нажатии кнопки меню. код, который я должен переключать, это:
case Menubutton1:
Intent i = new Intent(Budgeter.this, Outgoings.class);
startActivity(i);
return true;
(Очевидно, что в случае дела)
Как создать xml файл, относящийся только к второму классу? Также мне нужно редактировать AndroidManifest.xml?
Наконец, если бы кто-нибудь мог указать мне на некоторые хорошие учебники по намерениям, я был бы очень признателен.
Я предполагаю, что вы запутались в том, что думать, что файл макета для Activity должен называться main.xml??? Если это так, это не так...
Вы можете иметь budgeter.xml
, outgoings.xml
т.д. И т.д.
Просто используйте setContentView(R.layout.budgeter)
в функции Budgeter onCreate(...)
и setContentView(R.layout.outgoings)
в Activity onCreate(...)
Activity onCreate(...)
и т.д.
Также мне нужно редактировать AndroidManifest.xml?
Да, все действия должны быть зарегистрированы в AndroidManifest.xml
Что касается работы с Intents, попробуйте это как стартер...
в первом классе напишите метод
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem mnuHome =menu.add(0, 0, 0, "Home");
mnuHome.setAlphabeticShortcut('h');
mnuHome.setIcon(R.drawable.home_icon);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getTitle() == "Home") {
Intent i = new Intent(Budgeter.this, Outgoings.class);
startActivity(i);
finish();
}
}
А во втором классе вы должны переопределить метод onCreate(), и там вы можете установить Layout как
setContentView(R.Layout.XML);
Также для второго класса вы должны определить в menifest.xml
вы должны добавить второй (любой) класс в файл AndroidManifest.xml, если класс, расширенный из основных компонентов Android (Activity, Service, ContentProvider, BroadcastReceiver, BroadcastReceiver, немного отличается). Возможно создание другого XML файла в "макете", под "res".