Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 双操作栏出现了吗?_Android_Actionbarsherlock - Fatal编程技术网

Android 双操作栏出现了吗?

Android 双操作栏出现了吗?,android,actionbarsherlock,Android,Actionbarsherlock,这是我的第一个android应用,我作为iPhone开发者已经3年了,这是一个思维方式的改变,我仍然发现一些奇怪的事情。首先,我不知道这个iPhone背景是否会引起一些麻烦,但我想做的是: 我想实现一个ActionBar,它有两个选项可以像iOS中的TabBar一样工作: 我想要的是,当用户选择一个动作时,一些活动将呈现给用户 以下是我到目前为止正在做的事情(并不多): 我使用的是ActionBarSherlock,我有3个活动:myApp、First和Second myapp.java仅

这是我的第一个android应用,我作为iPhone开发者已经3年了,这是一个思维方式的改变,我仍然发现一些奇怪的事情。首先,我不知道这个iPhone背景是否会引起一些麻烦,但我想做的是:

我想实现一个ActionBar,它有两个选项可以像iOS中的TabBar一样工作:

我想要的是,当用户选择一个动作时,一些活动将呈现给用户

以下是我到目前为止正在做的事情(并不多):

  • 我使用的是ActionBarSherlock,我有3个活动:myApp、First和Second
myapp.java仅创建ActionBar元素并首先加载
活动

package com.example.myApp;

import com.actionbarsherlock.ActionBarSherlock;
import com.actionbarsherlock.view.MenuItem;

import android.os.Bundle;

import com.actionbarsherlock.ActionBarSherlock.OnCreateOptionsMenuListener;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;

public class myApp extends SherlockActivity implements OnCreateOptionsMenuListener {
    ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setTitle("myApp");
        mSherlock.setContentView(R.layout.activity_first);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add("First")
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        menu.add("Second")
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        return true;
    }
}
到目前为止,除了生成的存根外,这些活动没有任何内容:

import android.app.Activity;
import android.os.Bundle;

public class First extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);


    }
}
所以我有一个问题和一个问题:

  • 问题:这是活动栏的正确用法吗?我的意思是,它应该用来切换活动吗
  • 问题:正如您在myApp类的OnCreate方法中所看到的,我首先加载
    活动,它确实加载了活动,但是它加载了ActionBar两次,如下所示:
  • 我不明白为什么要装两次。如果我删除以下行:
    mSherlock.setContentView(首先是R.layout.activity_)它加载一次条,显然我需要加载活动

    我还在XML的图形编辑器(activity_first.XML)中将NoActionBar主题分配给activity_first,但它不起作用。我该怎么做才能加载一次

    感谢您宝贵的时间

    这是ActivityBar的正确用法吗?我的意思是,它应该用来切换活动吗

    你可以把“第一个”和“第二个”看作是桌面应用程序中工具栏按钮的等价物。如果您愿意,欢迎您让这些操作栏项目启动活动

    正如您在myApp类的OnCreate方法中所看到的,我首先加载activity_,它确实加载了activity,但是它加载了ActionBar两次,如下所示:

    删除此行:

    ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);
    
    并更改
    mSherlock.setContentView(首先是R.layout.activity_)只需
    设置内容视图(首先是R.layout.activity_)。我相信这会解决你的问题