我来自iOS,它很简单,您只需使用UIViewController即可。然而,在Android中,事情似乎要复杂得多,有特定的UIComponents用于特定的API级别。我正在阅读用于安卓系统的BigNerdRanch (这本书大约有2年历史了),他们建议我使用Activity
来托管我的FragmentActivities
。然而,我认为Activity
已经被弃用了。
因此,对于API级别22 (至少支持API级别15或16),我到底应该使用什么来托管组件以及组件本身?所有这些都有用途吗,或者我应该只使用其中的一种或两种?
发布于 2015-07-08 23:38:58
对于最低API级别为15的应用程序接口,您应该使用AppCompatActivity
。例如,您的MainActivity
将如下所示:
public class MainActivity extends AppCompatActivity {
....
....
}
要使用AppCompatActivity
,请确保你已经下载了谷歌支持库(你可以在你的Tools -> Android -> AppCompatActivity
管理器中查看)。然后只需在应用程序的gradle.build文件中包含gradle依赖项:
compile 'com.android.support:appcompat-v7:22:2.0'
您可以将此AppCompat
用作您的主Activity
,然后可以使用它来启动片段或其他活动(这取决于您正在构建的应用程序类型)。
BigNerdRanch这本书是一个很好的资源,但是它已经过时了。阅读它可以获得有关Android工作原理的一般信息,但不要期望它们使用的特定类是最新的。
发布于 2015-07-08 23:38:47
这里有很多混淆,特别是当你阅读过时的资料时。
最基本的是Activity
,它可以显示片段。如果您使用的是Android版本4以上的版本,则可以使用此组合。
但是,还有一个支持库,它包含了您提到的其他类:FragmentActivity
、ActionBarActivity
和AppCompat
。最初它们被用来支持Android版本4以下的片段,但实际上它们也被用来向后移植较新版本的Android的功能(例如材料设计)。
最新的一个是AppCompat
,另外两个是旧的。我使用的策略是始终使用AppCompat
,这样应用程序就可以在将来的安卓版本出现后端口的情况下准备就绪。
发布于 2016-01-05 21:23:25
由于名称可能会在未来的安卓版本中更改(目前最新的版本是AppCompatActivity
,但它可能会在某个时候更改),我认为拥有一个扩展AppCompatActivity
的类Activity
是一件好事,然后您的所有活动都将从该类扩展。如果明天,他们将名称更改为AppCompatActivity2
,例如,您将不得不在一个地方更改它。
https://stackoverflow.com/questions/31297246
复制相似问题