1

我想覆盖标准的 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);
}
4

1 回答 1

0

对用户输入做出反应的地方是onOptionsItemSelected。在 ActionBar 所需项目的 case 块中,您可以检查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);
}
于 2013-04-13T17:45:59.763 回答