Создание публичного намерения в Android - PullRequest
2 голосов
/ 30 января 2011

Итак, я пытался создать меню в приложении, в котором есть один элемент.Нажав на этот пункт меню, вы перейдете к другому виду деятельности.Таким образом, в основном я начинаю вспомогательное действие по нажатию на этот пункт меню.

Проблема здесь в том, что я должен указать свое намерение в методе onCreate() моей основной деятельности, но мне нужно это намерениев моем методе onOptionItemSelected(), который находится вне метода onCreate().Как мне это сделать?Мой метод onCreate ():

public void onCreate(Bundle savedInstanceState) { 
   Intent myIntent=new Intent(mainActivity.this,secondActivityt.class);
} 

Мой метод onOptionsItemSelected ():

public boolean onOptionsItemSelected(MenuItem item){
   if(item.getItemId()==R.id.aboutbtn){
      startActivity(myIntent);
}

Так что здесь я не могу получить доступ к myIntent.Могу ли я в любом случае объявить намерение вне метода onCreate и все равно заставить программу работать, или в любом случае я могу получить доступ к намерению вне метода onCreate?

1 Ответ

4 голосов
/ 30 января 2011

должно быть довольно просто, просто объявите личную переменную класса и сохраните свое намерение в таком виде, как

public class MyActivity extends Activity{
   private Intent myIntent;

   public void onCreate(...){
      ...
      myIntent = new Intent(...);
   }


   public boolean onOptionsItemSelected(MenuItem item){
      ...
      //use the myIntent here
   }

}

Я не пробовал сейчас, но не вижу причин, почемуне работает, если я не совсем понял вашу проблему:)

Так же, как sidenote.Возможно, вам также следует взглянуть на жизненный цикл Activity, в основном, когда происходит событие (onCreate, onResume, onStart, onDestroy, ...).Следующий рисунок, взятый из Разработчики Android , описывает его лучше всего: enter image description here

...