2013-07-25 3 views
2

У меня есть два формата xml файлов, каждый со своим отдельным классом Activity. Каждый класс действителен, потому что я могу ссылаться на каждое действие из раздела приложения файла манифеста, и он запускается и работает. Моя проблема в том, что когда я нажимаю кнопку в первом XML-файле макета, чтобы перейти к другому, он переключится на второй XML-файл макета, но любые действия на этом макете ничего не делают. Код во втором классе активности не срабатывает. Например, когда у меня есть MenuActivity, указанный первым, он отобразит XML-файл макета, и все вызовы этого макета будут работать. Когда я нажимаю кнопку, чтобы переключиться на «Домой», она отобразит XML-файл домашнего макета, но весь код внутри HomeActivity ничего не делает. Я уверен, что это что-то простое, но я не могу погладить его. Заранее спасибо.android перейти от одного вида деятельности к другому

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MenuActivity" 
     android:label="@string/title_activity_menu" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".HomeActivity" /> 
</application> 
+1

Можете ли вы показать, какой код вы используете для переключения деятельности? –

+1

Можете ли вы показать нам некоторые релевантные части из «MenuActivity» и «HomeActivity»? – gunar

+1

Вы должны опубликовать код, который выполняет переключение, а не только XML – anthonycr

ответ

12

Это звучит, как вы используете setContentView() вместо Intents для переключения деятельности.

Например, для запуска MenuActivity с вашего HomeActivity:

Intent menuIntent = new Intent(this, MenuActivity.class); 
startActivity(menuIntent); 

setContentView() просто изменяет расположение дисплея; он не создает новую активность.

+0

А, спасибо. Вот и все. Однако, когда я добавляю свой код, я получаю эту ошибку: конструктор Intent (новый View.OnClickListener() {}, Class ) не определен. TextView menuButton = (TextView) findViewById (R.id.textViewMenu); menuButton.setOnClickListener (новый View.OnClickListener() {@Override public void onClick (View v) {Intent menuIntent = новый Intent (это, MenuActivity.class); startActivity (menuIntent);}}); Извините, я не знаю, как правильно отформатировать его. –

+1

новое намерение (это, MenuActivity.class); нужен контекст «это» и класс «MenuActivity.class». похоже, что вы не придаете ему надлежащего контекста. попробуйте getApplicationContext() – Shmuel

+0

@Tanis: Какая догадка! – gunar

0

Используйте класс Intent для переключения из одной активности в другую. Предположим, что ваша первая деятельность HomeActivity и вы хотите пойти в MenuActivity просто написать простой код 2 строки ..

Intent intent=new Intent(HomeActivity.this,MenuActivity.class); 

startActivity(intent); 

Я надеюсь, что это работает.

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