4

我正在尝试制作顶部操作栏图标以允许用户返回上一个屏幕。我试图实现这些代码。但没有一个工作。任何人都可以请指导我。我知道这看起来很简单,我是 android 新手。以下是我的代码。

问题:当我点击图标按钮时,它只是清除了我的屏幕,而没有转到上一个屏幕。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_item);
        checkInternetConnection();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //<--THIS




@Override
public boolean onOptionsItemSelected(MenuItem item) 
{    
   switch (item.getItemId()) 
   {        
      case android.R.id.home:            
         Intent intent = new Intent(this, SingleViewActivity.class);            
         intent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); 
         startActivity(intent);            
         return true;        
      default:            
         return super.onOptionsItemSelected(item);    
   }
}
4

3 回答 3

17

这就是我这样做的方式:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // app icon in action bar clicked; go home
        Intent intent = new Intent(this, main.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        break;
    }
    return true;
}
于 2012-08-24T08:15:25.443 回答
2

在您的资源(资源)中,转到菜单并添加这个,使您在可绘制对象中有一些按钮

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/back"
    android:icon="@drawable/back1"
    android:showAsAction="always|withText"
    android:title="back"/>

现在在你的活动中

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        break;
    case R.id.back:
        Intent in = new Intent(this, <classname which you want to go back>.class);
        startActivity(in);
        break;
    }
    return false;
}
于 2012-08-24T08:18:35.020 回答
0

你可以试试这个代码

<item
    android:id="@+id/back"
    android:icon="@drawable/btn_back"
    android:showAsAction="always|withText"
    android:title="@string/txt_back"/>

>

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    // TODO Auto-generated method stub
    getSupportMenuInflater().inflate(R.menu.home, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    // TODO Auto-generated method stub
    //return super.onOptionsItemSelected(item);
    switch (item.getItemId()) 
    {
        case R.id.back:
                back_action();
            return true;

        default:
            break;
    }
    return true;
}

>

于 2014-03-20T15:17:05.267 回答