Articles of android actionbaractivity

如何在使用ViewPager时处理ActionBarActivity片段中的AsyncTask?

我正在使用ActionBarActivity创建5个选项卡。 我使用ViewPager使用SectionsPagerAdapter在5个选项卡之间滑动,扩展了FragmentPagerAdapter。 每个选项卡都有一个带有asynctask的片段,在oncreateview方法中调用。 当我在一个片段中时,正在调用其他片段中的asynctask。 我尝试在oncreateview方法中使用toast消息是每个片段而不是asynctask。 但错误的吐司消息正在以错误的片段被触发。 Oncreate方法代码: mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager_exp); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); actionBar.setTitle(getHomePageTitle(position)); } }); for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { // Create a tab with text corresponding to the page title defined by // the adapter. […]

ActionBarDrawerToggle的ActionBarActivity – 不使用drawerImageRes

在这个Android示例中,我尝试创建一个使用支持版本的应用程序(android.support.v4和android.support.v7)。 该示例创建一个如下所示的菜单抽屉 我的代码得到了这个 请注意,图标是不同的,它的移动方式是不同的,在我的版本中,它不会移动。 示例代码 public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); // set […]

在Android中的Action Bar标题上设置OnClick Listener

我正在使用Android应用程序,我正在使用ActionBar因此有一个导航抽屉图标在ActionBar打开它和ActionBar标题。 我想在ActionBar标题上设置一个单击侦听器,以便它启动一个新的Activity并在导航抽屉图标上设置不同的单击侦听器以打开导航抽屉菜单。 我点击了导航抽屉图标,但是当我点击ActionBar标题的标题时,它也会打开导航抽屉菜单。 有没有办法在ActionBar标题上设置不同的单击侦听器。 提前致谢。

更改导航抽屉的图标

我将导航抽屉图标更改为自定义图标时遇到问题。 我目前不得不实现标准的抽屉图标,顶部有3条水平线,但现在我想用我的自定义抽屉图标替换它。 这就是我的mDrawerToggle目前的情况: mDrawerToggle=new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.app_icon, R.string.drawer_open) { // My code };

如何居中工具栏后退按钮?

我在尝试将支持工具栏上的后退按钮居中时遇到问题。 我在ActionBarActivity中使用它。 并在Activity的onCreate()设置向上导航,如下所示: Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setTitle(R.string.title_activity_scanner); getSupportActionBar().setDisplayHomeAsUpEnabled(true); 但是,我得到的是: 如您所见,后退按钮放错了位置 编辑:问题似乎在于?attr/actionBarSize actionBarSize设置为40dp的自定义值,但是,现在结果是,它是错误放置的标题。

带有ActionBarActivity的ActivityUnitTestCase的NameNotFoundException

我正在尝试为现有的应用程序编写一些testing。 我想提供一个testing应用程序类的testing,我跟着这里的例子,因为我也使用Dagger的DI。 但是,如果被测活动是一个ActionBarActivity,我得到以下exception: java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{mypackage.view.activity/mypackage.view.activity.MyActivity} at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:282) at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:116) at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) at mypackage.view.activity.MyActivity.onCreate(MyActivity.java:68) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158) at mypackage.MyActivityTest.test(MyActivityTest.java:89) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214) at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) Caused by: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{mypackage.view.activity/mypackage.view.activity.MyActivity} at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:242) at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:298) at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:279) … 21 more 我的testing类如下所示: public class […]

在ActionBarActivity中从/等同于getActivity()

就像我的标题所说,我在我的Android project ActionBarActivity类中寻找相当于getActivity() 。 我想在AsyncTask声明对象中传递一个Activity参数,因为我在我的自定义AsyncTask扩展类中使用了一个Activity对象 这里是我的项目最简单的代码示例 public class EventCreator extends ActionBarActivity { private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_even_creator); View v = getLayoutInflater().inflate(R.layout.activity_even_creator,null); this.context = this.getBaseContext(); final Button createButton = (Button)findViewById(R.id.createEventButton); createButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(/* here need activity object */); eventCreatorSend.execute(); […]

AppCompat v7工具栏上/下箭头不起作用

我在活动中有两个片段。 当片段A显示时,我希望显示导航抽屉汉堡图标并使抽屉导航工作。 当片段B显示时,我想要后退箭头显示,当它被点击做一个向上的导航。 然而,我似乎无法得到新的AppCompat v7工具栏显示在我的ActionBarActivity里面的向上箭头,除非导航抽屉打开。 在我的活动中,我的onCreate()方法… toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { setSupportActionBar(toolbar); } mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close); mDrawerLayout.setDrawerListener(mDrawerToggle); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); 然后我调用mDrawerToggle.syncState(); 在我的onPostCreate() 我试着search如何以编程方式触发工具栏图标到后退箭头,但没有任何工作。 从我所收集到的,呼唤 getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); 从我的片段应该改变图标,但事实并非如此。 这可能是一个愚蠢的问题,但我做错了什么?

使用RobolectrictestingActionBarActivity时出错

我正在使用Robolectric从我的应用程序中testing活动。 该活动扩展了ActionBarActivity。 当我testing活动时,我得到的错误:“IllegalStateException:您需要使用Theme.AppCompat主题(或后代)与此活动。 我的testing环境是这样的:Android Studio 0.8.6,Robolectric 2.4-SNAPSHOT,support-v4库版本20.0,appcompat-v7版本20.0。 现在的课程。 活动 : public class FilterActivity extends ActionBarActivity testing类: @Config(emulateSdk = 18, manifest = "src/main/AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) public class FilterActivityTest { private FilterActivity activity; @Before public void setUp() throws Exception { activity = Robolectric.buildActivity(FilterActivity.class).create().get(); } @After public void tearDown() throws Exception { activity.finish(); } @Test public void testOnCreate() { […]

必须在添加内容之前调用ActionBarActivity requestFeature

编辑反映matias's评论 其实,原本我没有支持supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 或requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 在我的代码中,直到我注意到runtime exception when below combinations of actions happened的runtime exception when below combinations of actions happened 用户按下主页button以最小化应用程序,并尝试从最近的应用程序 ( 这是长按主页button ) 发生屏幕旋转时(注意:清单没有 configChange声明) 然后我认为在初始化过程中显示不确定的进度栏应该导致问题,所以只有我试图调用request*方法,认为它会清除它,但没有发生任何事情.. 最后我删除了showPdIndeterminate(); 为了testing。 因此,我没有在我的代码显示它。 在上述情况下仍然是一样的 我有一个基于片段的ActionBarActivity ,我的布局被包装在DrawerLayout有two framelayouts来容纳两个frgaments。 我尝试了requestFeature()之前必须调用super.onCreate添加内容错误,但仍然是例外 @Override protected void onCreate(Bundle savedInstanceState) { Log.e(TAG, "Inside OnCreate"); // supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); showPdIndeterminate(); …. } 和showPdIndeterminate()是 private void showPdIndeterminate() { […]