2013-04-13 3 views
1

Я хотел бы переопределить стандартный ActionBar, чтобы выполнить некоторую проверку перед тем, как перейти к предыдущей операции. Я хотел бы проверить, есть ли что-то, что было введено в editText, и если да, то я хочу спросить, вернуться ли что-то, что-то введено или остаться в этом окне. Я просто хочу, чтобы knwo, где бы поставить if else loop.Как переопределить стандартную функцию ActionBar?

Это в OnCreate:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     // Show the Up button in the action bar. 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

И два метода:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activityB, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

ответ

0

Место для реакции на пользовательский ввод onOptionsItemSelected. В случае блока желаемого элемента ActionBar вы можете проверить с помощью if(EditText.getText() != null), если что-то было введено или нет.

Edit:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     if(yourEditText.getText() != null){ 
      // ask user what to do 
     } else { 
      // nothing was typed -> move to home activity 
      NavUtils.navigateUpFromSameTask(this); 
     } 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

вы можете редактировать свой ответ, чтобы написать мне полный onOptionsItemSelected метод? –

+0

Готово. Имейте в виду, что, возможно, вам придется перепроектировать это. Поскольку вы хотите дать пользователю выбор, что делать, вы будете использовать «Диалог» или что-то в этом роде. –

+0

Спасибо! Прекрасно работает! –

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