2013-07-03 2 views
0

Я создал 2 основных файла activity.java в моем исходном файле. В первом я делаю первый экран, и когда я нажимаю кнопку, я хочу пойти в другую деятельность, чтобы получить второй экран. Вот почему я создал файл MainActivity2.java, который запускается, когда я нажимаю кнопку.Взаимодействие щелчка между экранами android

Хотя у меня нет ошибок компиляции, когда я запускаю свое приложение, он останавливается в симуляторе, и он даже не показывает первый экран. Код выглядит следующим образом:

MainActivity.java:

public class MainActivity extends Activity implements OnClickListener { 

    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

     Button imageButton1 = (Button) findViewById(R.id.imageButton1); 
     imageButton1.setOnClickListener(this); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
    } 


    @Override 
    public void onClick(View v) { 

     Intent i=new Intent(MainActivity.this, MainActivity2.class); 
     startActivity(i); 
    } 


} 

и

MainActivity2.java:

public class MainActivity2 extends Activity { 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_2); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

}

, где activity_main мой первый. xml-файл, содержащий экран forst и imageButton1, равен b utton, который я создал в моем xml-файле, который я хочу перейти в MainActivity2, при нажатии и активации второго действия, чтобы показать второй экран. А Activity_main_2.xml содержит второй экран.

Заранее спасибо.

ответ

0

Прежде всего проверьте, добавили ли вы вторую активность в файл AndroidManifest. Если да, то, пожалуйста, укажите трассировку стека.

+0

Мой MainActivity2 объявлен в AndroidManifest.xml как это: –

+0

Мой MainActivity2 объявлен в AndroidManifest.xml, как это: <деятельность андроид: имя = андроид»MainActivity2" .: Метка = "@ строка/title_activity_main" андроид: parentActivityName = "com.example.myapp.MainActivity"> <мета-данные андроид: имя = "android.support.PARENT_ACTIVITY" андроид: значение = "com.example.myapp.MainActivity" /> –

+0

Тогда я не знаю, все ли в порядке, касающееся кнопки. Поскольку я объявил imageButton2 alrready в моем Activity_main.xml, и изображение загружено, то снова я создаю кнопку с одно имя (imageButton2) в MainActivity.java –

1

Прежде всего, объявили ли вы оба действия в файле манифеста приложения? Это может быть причиной закрытия приложения.

Во-вторых, В методе OnClick вы должны проверить, если эта кнопка имеет фактически была нажата путем проверки идентификатора кнопки.

общественный недействительный OnClick (View v) {

if(v.getId()==R.id._idofImageButton_){ 
    Intent i=new Intent(MainActivity.this, MainActivity2.class); 
    startActivity(i); 
} 

}

Надеется, что это помогает.

+0

Он не должен проверять, потому что он установил imageButton1.setOnClickListener (это); – Divers

+0

Поскольку он использует прослушиватель верхнего уровня, это хорошая практика, чтобы проверить, если он хочет добавить дополнительные кнопки в будущем. Предложение мне кажется хорошим. – Jules

+0

ИМХО, это плохая практика, чтобы использовать прослушиватель кликов верхнего уровня. Но вопрос не об этом. – Divers