AppCompat视图组件和标准/默认视图组件之间有什么区别?
例如,an AppCompatEditText和an EditText之间或a AppCompatButton和a 之间的差异Button.
查看开发人员文档android.support.v7.widget,AppCompat视图组件被描述为" tint aware ",但这是唯一的区别,这究竟是做什么的?
android android-appcompat android-view android-support-library
我有一个RecyclerView,并且在它的适配器中,我创建了类似于an的东西OnLongClickListener,我称之为OnEntryLongClickListener避免混淆.
我使用an AlertDialog来显示包含不同操作的列表项的对话框.但是,我收到以下错误:
E/AndroidRuntime: android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.Resources.getValue(Resources.java:2345)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:3910)
at android.content.res.Resources.getLayout(Resources.java:2161)
at android.view.LayoutInflater.inflate(LayoutInflater.java:413)
at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
at android.support.v7.app.AlertController$AlertParams.createListView(AlertController.java:734)
at android.support.v7.app.AlertController$AlertParams.apply(AlertController.java:711)
at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:883)
at com.mycompany.myapp.ThisActivity$2.onEntryLongClick(ThisActivity.java:135)
at com.mycompany.myapp.adapter.RVAdapter$RVViewHolder.onLongClick(RVAdapter.java:41)
at android.view.View.performLongClick(View.java:5236)
Run Code Online (Sandbox Code Playgroud)
以下是我使用的相关代码:
adapter.setOnEntryLongClickListener(new RVAdapter.OnEntryLongClickListener() {
@Override
public void onEntryLongClick(View view, int position) {
final MiniEntry thisEntry = entryList.get(position);
AlertDialog.Builder builder = new AlertDialog.Builder(getBaseContext());
builder.setTitle(thisEntry.getEntryName()););
builder.setItems(R.array.quickActions, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Other code here
}
});
AlertDialog alert = …Run Code Online (Sandbox Code Playgroud) 我知道有两种方法可以在Android中设置标题Activity.
假设我已经有以下代码......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
...
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
......我可以用这个......
getSupportActionBar().setTitle("My title");
Run Code Online (Sandbox Code Playgroud)
...或这个...
toolbar.setTitle("My title");
Run Code Online (Sandbox Code Playgroud)
......设定我的头衔.
我的问题是,哪种更好的做法?
我今天将Android Studio升级到1.2,我收到了这个错误.
找不到以下类:android.support.v7.widget.Toolbar(修复构建路径,创建类)
我的build.gradle包含以下依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:cardview-v7:22.1.1'
compile 'com.android.support:recyclerview-v7:22.1.1'
compile 'com.android.support:appcompat-v7:22.1.1'
}
Run Code Online (Sandbox Code Playgroud)
有人请帮我解决这个问题吗?
所以我一直在做一个我有很多数据的项目。在某些数据集合中,有部分数据链接到其他数据集合,如在关系数据库中。
但是,我对是否应该使用多个数据库或多个表感到困惑。我试图找出答案,Quora 的答案有所帮助——据我所知,如果我有链接在一起的数据集合,我应该使用一个包含多个表的数据库(这些表会链接在一起)。
如果我的理解是正确的,那么这种做法在多大程度上合适?例如,如果您在一个数据库中有 20 多个表还可以吗?你会用一个吗
另外,如果您可以将所有内容放在一个包含多个表的数据库中,您什么时候会使用不同的数据库?
我希望这个问题不是太模糊或什么,但我找不到明确的答案来解释每个的目的,因此为什么要在多个表上使用多个数据库,反之亦然。
我似乎在我的应用程序中遇到一个奇怪的错误(请参阅GitHub),当我将对象传递给实现的不同活动时会发生这种错误Parcelable.
我已经在Stack Overflow上检查了其他问题和答案,但我无法找到解决方案.我在这里尝试了答案,例如 - 这里仅供参考:
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
Run Code Online (Sandbox Code Playgroud)
我还确保方法调用writeToParcel是有序的.关于此问题的Stack Overflow上的大多数其他问题都没有答案.
此外,我问一个新问题的原因是因为我认为我的问题是由于我在我的应用程序中使用接口的原因引起的(稍后我将对此进行扩展).Stack Overflow上的其他问题不适合我的特定情况.
在下面,我通过GitHub提供了代码的链接,以便您可以根据需要探索更多代码.
当我单击按钮以启动新活动(传递实现的对象Parcelable)时,会发生崩溃:
Process: com.satsuware.flashcards, PID: 4664
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.satsuware.flashcards/com.satsumasoftware.flashcards.ui.FlashCardActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@d2219e4: Unmarshalling unknown type code 6815860 at offset 200
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
...
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@d2219e4: Unmarshalling unknown type code 6815860 at offset 200
at android.os.Parcel.readValue(Parcel.java:2319)
at android.os.Parcel.readListInternal(Parcel.java:2633)
at android.os.Parcel.readArrayList(Parcel.java:1914)
at android.os.Parcel.readValue(Parcel.java:2264) …Run Code Online (Sandbox Code Playgroud) 改变后targetSdkVersion和compileSdkVersion22,并改变我buildToolsVersion到22.0.1,我不断收到以下错误:
'buildTypes'不能应用于''(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)'
我查看了我的build.gradle文件并试图查找可能出错的任何内容:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "********"
minSdkVersion 14
targetSdkVersion 22
versionCode 17
versionName "1.5-beta"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
freeFlavour {
applicationId "********"
}
paidFlavour {
applicationId "********"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.0.0'
}
Run Code Online (Sandbox Code Playgroud) 我有一个Android库,由于某种原因,我在我指定的文件和文件夹.gitignore不会被忽略.
我已经尝试修改我的.gitignore并且也遵循这些步骤,但这并没有改变任何东西.
这是我的顶级.gitignore(也可以在GitHub回购中找到):
# Gradle files
.gradle/
build/
*/build/
# Local configuration file (sdk path, etc)
local.properties
# IntelliJ
*.iml
/.idea
Run Code Online (Sandbox Code Playgroud)
包含build未被忽略的文件夹的模块具有以下内容.gitignore:
/build/
Run Code Online (Sandbox Code Playgroud)
我不确定为什么build不会忽略该目录,因为它在我的示例应用程序模块和顶级目录中被忽略.
此外,build当我更新我的库版本时,我确实对目录中的某些文件进行了更改,如果这很重要的话.
我一直在学习如何使用Systrace按照如何使用Systrace的说明(来自Android开发者网站).我尝试过使用GUI和终端(命令行).
跟踪完成并保存后,我收到错误.我点击了" 详细信息 "按钮,总体而言,给出了以下消息:
无法收集系统跟踪
原因:收集系统跟踪时出现意外错误.
转换=';'
Systrace文件未保存.
我已经尝试使用命令行以及使用GUI(虽然我是使用命令行的新手).
键入$ cd android-sdk/platform-tools/systrace或$ python systrace.py进入命令行会返回错误:
'$'不被识别为内部或外部命令,可操作程序或批处理文件.
使用cd android-sdk/platform-tools/systrace(没有$字符)会出现此错误:
该系统找不到指定的路径.
并使用python systrace.py(再次,没有$这个时间)返回此错误:
'python'不被识别为内部或外部命令,可操作程序或批处理文件.
我错过了什么,还是需要重新配置的东西?
我刚开始在Android中编写自定义视图(第一次),我意识到我需要实现滚动功能.
自定义视图还使用包含一些文本的标题(应该保持固定而不是滚动).
我已经阅读了关于GestureDetector.SimpleOnGestureListener和的文档Scroller.我还阅读了关于动画滚动手势的文档,但我发现这些示例很难理解.我还看了Stack Overflow上的其他一些问题.
使用我在Stack Overflow答案的文档中理解的作为参考来指导我,我已将以下内容添加到我的自定义视图中:
变量和字段:
private OverScroller mScroller;
private final GestureDetector mGestureDetector =
new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// Note 0 as the x-distance to prevent horizontal scrolling
scrollBy(0, (int) distanceY);
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
final int maxScrollX = 0;
// wholeViewHeight is height of everything that …Run Code Online (Sandbox Code Playgroud) android ×9
android-view ×1
android-xml ×1
build.gradle ×1
database ×1
git ×1
github ×1
gitignore ×1
parcelable ×1
systrace ×1