Android ActionBarSherlock返回顶部图标

时间:2012-08-24 08:10:42

标签: android actionbarsherlock back

我正在尝试制作顶部操作栏图标,以允许用户返回上一屏幕。我试图实现这些代码。但没有人工作。任何人都可以指导我这个。我知道这看起来很简单,我是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);    
   }
}

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:2)

在你的资源中(res) 去菜单 并添加 这使得你可以在你的抽奖中找到一些按钮

<?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;
}

答案 2 :(得分:0)

你可以试试这段代码

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

&GT;

@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;
}

&GT;