导航:首页 > APP软件 > 没有appcompatactivity

没有appcompatactivity

发布时间:2023-01-09 21:01:38

1. eclipse导入v7包没有AppCompatActivity这个类

v7包版本问题,请下载23.0之后的v7包导入.

可以看到你的android.support.v7.app.AppCompatActivity里面都是空的,删掉重新导入,或者自己解压包看看这个包里面有没有文件.

2. 在Android Studio中找不到AppCompatActivity解决方案

在创建新的.java文件时,要导入父类中的 AppCompatActivity,报错,无法找到这个父类。

解决方案:

先找到“project structure”快捷键也可以,然后找到app--Dependencies,再点击右上角的“+”,出现如下图所示

点击“Library dependency”

再搜索框中,输入com.android.support:appcompat-v7 添加上就可以了。

3. AppCompatActivity

title: AppCompatActivity
date: 2017-04-09 01:08:17
tags: 学习
categories: android

[TOC]

官方介绍:

从Android 21之后引入Material Design的设计方式,为了支持Material Color 、调色板、toolbar等各种新特性,AppCompatActivity就应用而生。
代替了原有的ActionBarActivity。在AppCompatActivity中,更是引入了AppCompatDelegate类的设计,
可以在普通的Acitivity中使用AppCompate的相关特性。

使用AppCompatActivity必须继承Theme.AppCompat样式。然后就可以使用colorPrimary,colorPrimaryDark和colorAccent进行相应的设置。

在以前Android系统推荐的是ActionBar,但是ActionBar的自定义效果不好。现在新的ToolBar可以完美的扩展。

详细的ToolBar使用还需要单独研究一下

可以结合Snackbar使用,Snackbar可以代替Toast等使用,并且它可以在一定程度上代替对话框功能。

这个对话框相比较以前默认的,确实不是一个档次的啊。

AppCompatActivity除过自己可以设置一些Material风格的颜色,更多的是和Material风格的控件搭配使用,比如toolBar、Snackbar和AlertDialog等等。
如果这些控件要直接在Activity中使用,那么必须通过APPCompateDelegate去进行控制。
注意:使用AppCompatActivity或直接使用APPCompateDelegate,都必须使用Theme.AppCompat样式。

如何给非AppCompatActivity添加Toolbar

用好AppCompatActivity

4. Android Studio 3.3+ 每次打开项目出现AppCompatActivity等组件找不到的解决办法

打开之前正常的项目出现各种明明已经引用的组件,包含不限于系统的 AppCompatActivity 爆红找不到,查看项目设置中库的确已经引用。

等待 Clean 完成后进行第二步:

搞定。

目前尚不清楚此 bug 的原因,不过 Google 这更稳定版本还各种出问题的毛病真让人无奈啊...

5. 如何给非AppCompatActivity添加Toolbar

现在App中基本都会用Toolbar来代替ActionBar,下面是可能的代码片段。
布局文件
<LinearLayout xmlns:android=""
xmlns:app=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppComp

6. 如何给非AppCompatActivity添加Toolbar

你可以使用支持包提供了新的AppCompatDelegate构件,很容易地将Toolbar添加到Activity上。

1,将Toolbar控件添加到布局文件上面
ActionBar现在已经被不再被告维护了,它应该被Toolbar取代,因为后者允许了更多的UI灵活性,并且允许Activity更容易地兼容于材料设计的UI模式。
因为我们要在这使用支持包,那么我们将使用Toolbar的支持版本,不然的话,将只能在API 21+上可用。
在xml中添加如下内容:

1 <android.support.v7.widget.Toolbar
2 android:id="@+id/my_awesome_toolbar"
3 android:layout_height="@dimen/abc_action_bar_
4 default_height_material"
5 android:layout_width="match_parent"
6 android:minHeight="@dimen/abc_action_bar_
7 default_height_material"
8 android:background="?attr/colorPrimary"
9 />

2,修改主题:
因为我们要将Toolbar嵌入到布局文件中,所以我们需要不支持ActionBar的主题。
所以,在确定在styles.xml文件中使用主题Theme.AppCompat.NoActionBar。
特别推荐,要在你的主题上添加如下所示的材料设计色彩项,这将很容易地实现对Toolbar和状态栏的着色(只有API 21+的设备上才会对状态栏进行着色):

1 <!-- Base application theme. -->
2 <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
3 <!-- colorPrimary is used for coloring the Toolbar -->
4 <item name="colorPrimary">#3F51B5</item>
5 <!-- colorPrimaryDark is used for coloring the status bar -->
6 <item name="colorPrimaryDark">#303F9F</item>
7 <!-- colorAccent is used as the default value for colorControlActivated
8 which is used to tint widgets -->
9 <item name="colorAccent">#FFAB40</item>
10 </style>

3,将AppCompatDelegate添加到Activity里面
AppCompatDelegate是一个委托代表,它将AppCompatActivity的特性提供给Activity,而且只能通过create()方法创建,此时它需要两个参数,Activity和AppCompatCallback。
所以,首先,我们将Activity实现AppCompatCallback接口,在本例中,可以不必具体实现要覆盖的方法。

1 public class MainActivity extends Activity implements AppCompatCallback {
2 @Override
3 public void onSupportActionModeStarted(ActionMode mode) {
4 //let's leave this empty, for now
5 }
6 @Override
7 public void onSupportActionModeFinished(ActionMode mode) {
8 // let's leave this empty, for now
9 }
10 }

然后,在Activity的onCreate()方法中,
通过AppCompatDelegate.create()方法创建AppCompatDelegate;
调用AppCompatDelegate.create();(有些Activity的生命周期方法应用由该AppCompatDelegate代理)
通过AppCompatDelegate.setContentView()方法填充布局文件;
通过AppCompatDelegate.setSupportActionbar()将Toolbar添加给AppCompatDelegate。

1 private AppCompatDelegate delegate;
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 //let's create the delegate, passing the activity at both arguments (Activity, AppCompatCallback)
6 delegate = AppCompatDelegate.create(this, this);
7 //we need to call the onCreate() of the AppCompatDelegate
8 delegate.onCreate(savedInstanceState);
9 //we use the delegate to inflate the layout
10 delegate.setContentView(R.layout.activity_main);
11 //Finally, let's add the Toolbar
12 Toolbar toolbar= (Toolbar) findViewById(R.id.my_awesome_toolbar);
13 delegate.setSupportActionBar(toolbar);
14 }

特别推荐,一个Activity只能链接到一个AppCompatDelegate实例,因此通过create()方法返回的实例应该保存在Activity里面直到该Activity被销毁。
现在,你已经完成了,运行你的应用,然后你的Activity将会魔法一般拥有一个Toolbar,而且看起来完全你是材料设计的AppCompatActivity!

7. Android使用compat26找不到R文件,使用20无法使用AppCompatActivity,急求解决方法

换个v7包吧
去到东软网站下载一个
android_m2repository_r47.zip
网站:
http://mirrors.neusoft.e.cn/android/repository/


嗯,正版原装的AppCompatActivity不用出来了,
或者你这样办,把你项目里的v4,v7都删了
你如果用eclipse,把全部v4,v7jar都删了,如果是as,把依赖都删了,然后关键就来了,把我上面跟你推荐的官方正版源码都放在你项目里面,注意也要新建下android的包名,就是android.support.v4 android.support.v7
把源码都放进去,应该就没问题了

8. activity,actionbaractivity appcompatactivity 有什么区别

之前一直用Eclipse写Android,最近换到了Android Studio,因为毕竟是Google推荐的,也是未来的大势所趋,在使用过程中,遇到一些关于Activity的问题,下面来讨论下。
先说Eclipse。先新建项目,其中Minimum Required SDK 选择API14 :Android 4.0,(Icecream Sandwich),Target SDK和Compile With选择API19:Android 4.4(KitKat),新建完成后,MainActivity 自动继承自Activity。以下是程序运行后的截图:。
可以发现,在主界面顶端会出现ActionBar,显示当前Activity的名称AndroidTest。这是Eclipse的情况,下面看一下Android Studio中的情况。
在Android Studio中先新建一个Project,Application name为AndroidTest,然后在platform和SDK中选择Phone And Tablet.Minimum SDK选择API 14:Android 4.0(IceCreamSandwich),新建完成后,自动会在Project中新建一个Mole,名称为app.此时可以发现MainActivity是默认继承自ActionBarActivity.并且在ActionBarActivity上有一条删除线,表现该ActionBarActivity已经过时了,查看提示会发现:“android.support.v7.app.ActionBarActivity is deprecated”.表示已经是过时的了,或者说是不推荐使用了。以下是程序运行后的截图:。可以发现在顶端还是会出现ActionBar,默认显示项目名称AndroidTest.与Eclipse中的项目没有任何区别,只是MainActivity继承的父类分别是Activity和ActionBarActivity而已。
由于Android开发中一个Class的过时总会让人不爽,下面将AS中继承的ActionBarActivity手动改成Activity.并导入对应的包,程序运行后的截图如下所示:。可以发现顶端的ActionBar不见了。这就和Eclipse中完全不同了。同样是继承自Activity,界面UI却不同。这也是Eclipse和AS开发Android项目的区别之一。
如果要在AS中也使用ActionBar,并且不使用已经的过时的ActionBarActivity,有什么办法呢?就是使用AppCompatActivity.在AS中把MainActivity继承自AppCompatActivity,并导入对应的包,程序运行后截图:。可以发现我们可爱的ActionBar又出现了。并且AppCompatActivity并没有过时。
以后在我们的项目中,可以通过手动修改Activity的继承父类,来决定是否显示ActionBar。并且对程序没有其他影响。同样的代码在Eclipseh和Android Studio中会出现较大差异,需要区别对待。

阅读全文

与没有appcompatactivity相关的资料

热点内容
监管大数据分析由哪个部门建立 浏览:793
康福视频69手机版本 浏览:45
怎么查看app的编程语言 浏览:323
荣耀7怎么复制文件夹 浏览:253
苹果系统管理文件 浏览:842
linux特殊文件有哪些权限 浏览:610
安卓文件路径映射 浏览:786
懒人看版本74 浏览:469
暴风影音老版本下载 浏览:331
华为荣耀5c升级70 浏览:53
文件夹的菜单栏 浏览:996
网络信息采集技术 浏览:326
qq文件tencent文件夹里找不到 浏览:631
月影剑痕天剑升级 浏览:190
网络直播平台监督APP 浏览:970
建立公司网站网页需要多少钱 浏览:53
比特币java 浏览:13
nrg文件怎样转换 浏览:858
数据库第五版 浏览:535
苹果微信怎么进不去公众号 浏览:796

友情链接