我想覆盖标准的ActionBar,以便在进入上一个活动之前进行一些检查。我想检查是否有东西输入editText,如果是,我想询问是否返回无论输入什么或留在这个窗口。我只想知道在哪里放置if else循环。
这是在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 :(得分:0)
对用户输入作出反应的地方是onOptionsItemSelected
。在ActionBar所需项目的大小写块中,您可以查看if(EditText.getText() != null)
是否输入了内容。
编辑:
@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);
}