我来自iOS,这很容易,你只需使用UIViewController.然而,在Android中,事情看起来要复杂得多,某些UIComponents用于特定的API级别.我正在阅读BigNerdRanch for Android(这本书大约有2年了),他们建议我Activity用来托管我的FragmentActivities.但是,我认为Activity已被弃用.
因此,对于API级别22(对API级别15或16的最低支持),我应该使用什么来托管组件以及组件本身?是否有所有这些用途,或者我应该几乎完全使用一两个?
android android-fragments android-activity android-actionbaractivity appcompatactivity
android.support.v7.app.AppCompatActivity 昨天作为新功能添加到最新的v7支持库中.
据说ActionBarActivity已经弃用了新的AppCompatActivity,这AppCompatActivity是使用支持库操作栏功能的活动的基类.那么,什么是新的功能AppCompatActivity了ActionBarActivity?做什么改进AppCompatActivity有过ActionBarActivity?有什么好处AppCompatActivity?有人可以提供一些样品吗?
任何提示都表示赞赏.并提前感谢.
PS:最让我感到惊讶的是,AppCompatActivity从android.support.v4.app.FragmentActivity直接的父类延伸出来的是什么ActionBarActivity!我的意思是现在实际上ActionBarActivity可以做任何AppCompatActivity可以做的事情,为什么Android会推出后者呢?
同时,我看到了一篇博客文章,指出:" 这不是从命名ActionBarActivity到AppCompatActivity,内部逻辑AppCompat通过可用AppCompatDelegate ",那么什么是" 内在逻辑的" AppCompat?有什么可以AppCompatDelegate做什么?有人会发布一些关于此的代码吗?
android android-appcompat android-actionbaractivity appcompatactivity
我刚刚安装了Android Studio,并且我开始对一个活动进行编码以进行扩展ActionBarActivity,并显示它已被弃用.那么我如何为我的活动设置一个操作栏呢.此外,入门培训使用ActionBarActivity不引用它的方法已被弃用.
android deprecated android-actionbar android-actionbaractivity
我是android-programming的新手.我正在按照本教程使用" 支持Android 2.1及更高版本 "部分中的说明向我的Main_Activity 添加ActionBar.
我按照本教程添加了一个Library-Project.然后在添加库之后,在" 将库添加到您的应用程序项目中:我感到迷茫......基本上因为我在Eclipse中没有" 添加 "选项.
但是我点击了" 添加库 "并继续前进..
现在当我Activity改为ActionBarActivity:
public class MainActivity extends ActionBarActivity { ... }
Run Code Online (Sandbox Code Playgroud)
在我的mainActivity.java中,它给了我错误(ActionBarActivity和所有方法的名称和一些函数下面的红线)..当我改变时再次:
<activity android:theme="@style/Theme.AppCompat.Light" ... >
Run Code Online (Sandbox Code Playgroud)
在Manifest中,它也给我一个错误说: 找不到与给定名称匹配的资源.
我完全迷失了......我做错了什么?
我在尝试将支持工具栏上的后退按钮居中时遇到问题.我在ActionBarActivity中使用它.
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolbar="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
toolbar:popupTheme="@style/ThemeOverlay.AppCompat.Light"
toolbar:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Run Code Online (Sandbox Code Playgroud)
并在Activity中设置向上导航,onCreate()如下所示:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.title_activity_scanner);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是:
如您所见,后退按钮放错了位置
编辑:问题似乎在于?attr/actionBarSize设置为40dp 的自定义值,但是,现在结果证明,它是错误放置的标题.
android android-actionbaractivity material-design android-toolbar
我将导航抽屉图标更改为自定义图标时遇到问题.我目前不得不实现标准的抽屉图标,顶部有3条水平线,但现在我想用我的自定义抽屉图标替换它.
这就是我mDrawerToggle现在的样子:
mDrawerToggle=new ActionBarDrawerToggle(this,
mDrawerLayout,
R.drawable.app_icon,
R.string.drawer_open) {
// My code
};
Run Code Online (Sandbox Code Playgroud) android android-actionbar android-drawable android-navigation android-actionbaractivity
我在Android应用程序的工作,我现在用ActionBar这样一个有导航是抽屉图标来打开它和标题ActionBar在ActionBar.我想在标题上设置一个点击监听器ActionBar,使其Activity在导航抽屉图标上启动一个新的并设置不同的点击监听器,以打开导航抽屉菜单.
我点击了导航抽屉图标但是当我点击标题ActionBar标题时它也会打开导航抽屉菜单.有没有办法在标题上设置不同的点击监听器ActionBar.
提前致谢.
android android-appcompat android-actionbar android-actionbar-compat android-actionbaractivity
我正在使用ActionBarActivity创建5个选项卡.我使用ViewPager在SectionsPagerAdapter中使用扩展FragmentPagerAdapter在5个选项卡之间滑动.每个选项卡都有一个带有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. Also specify this Activity object, which implements
// the TabListener interface, as the callback (listener) for when
// this tab is selected.
actionBar.addTab(actionBar.newTab()
.setIcon(getPagedrawable(i))
.setTabListener(this));
}
Run Code Online (Sandbox Code Playgroud)
//适配器类代码:
public class …Run Code Online (Sandbox Code Playgroud) android android-asynctask android-actionbar-compat android-actionbaractivity
从这个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 a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items …Run Code Online (Sandbox Code Playgroud) 我正在使用这个模板https://github.com/kanytu/android-material-drawer-template只是为了尝试material design所以我实现了一些片段,有些网页视图有些没有.
我的问题是在片段之间切换时我可以看到它们被成功添加到后台堆栈中
getFragmentManager().beginTransaction().replace(R.id.container, new FAQ()).addToBackStack("FAQ").commit();
Run Code Online (Sandbox Code Playgroud)
但是当我按下后退按钮时,它就会关闭应用程序.
当我改为使用Activity而不是ActionBarActivity导航工作正常,但我失去了一些其他功能.
后退按钮上有一个覆盖
@Override
public void onBackPressed() {
if (mNavigationDrawerFragment.isDrawerOpen())
mNavigationDrawerFragment.closeDrawer();
else
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
但即使被删除它仍然会发生.我认为这个问题存在于某个方面super.onBackPressed
有什么理由ActionBarActivity可以打破后退按钮吗?
android android-fragments android-actionbaractivity android-5.0-lollipop