小编Ban*_*zio的帖子

Android风味和资源文件

我有android gradle构建的问题.长话短说,我创造了两种口味:

productFlavors{
        abcDemoFree{
        }

        abcDemo{
        }
}
Run Code Online (Sandbox Code Playgroud)

Eeach flavor为此活动提供了自己的Activity(Settings.java)和布局(settings_layout.xml).从main开始,两个文件都被删除了,因此Settings.java和settings_layout.xml只存在于各种风格中.

abcDemoFree
    - java
        - Settings.java
    - res
        - settings_layout.xml

abcDemo
    - java
        - Settings.java
    - res
        - settings_layout.xml
Run Code Online (Sandbox Code Playgroud)

Android Studio创建了4种构建变体:

abcDemoFreeDebug
abcDemoFreeRelease
abcDemoDebug
abcDemoRelease
Run Code Online (Sandbox Code Playgroud)

一切都很好,我能够创建apk我期待从每个味道的行为.问题是当我切换到一个buildVariant时,例如abcDemoDebug,android studio报告来自另一种风格的资源文件的bug,在我的例子中来自abcDemoFreeDegub/res/settings_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
              xmlns:app="http://schemas.android.com/apk/res-auto"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这些线

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
Run Code Online (Sandbox Code Playgroud)

生成错误:URI未注册.

如何摆脱这些错误?或者这可能是正常行为?

android gradle android-productflavors

9
推荐指数
1
解决办法
2113
查看次数

ORMLite中的集合

您好我想在我的Android应用程序中使用ORMlite保留一些集合数据.例如 :

class Person {
  @DatabaseField(generatedId=true)
  private int id;

  @DatabaseField
  private String name;

  @DatabaseField
  private String surname;

  @ForeignCollectionField
  private Collections<Phone> phones;
}

class Phone {
  @DatabaseField(generatedId=true)
  private int id;

  @DatabaseField
  private String number;

  @DatabaseField
  private String type; 
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能坚持这个系列.

编辑

我告诉你,我使用ForeignCollectionField.但现在我有另一个问题 - 可能是这样的结构(我改变了一点)

@DatabaseTable
public class Student {

    @DatabaseField(generatedId=true)
    private int id;

    @DatabaseField
    private String name;

    @DatabaseField
    private String surname;

    @DatabaseField
    private String semestr;

    @ForeignCollectionField
    private Collection<Adres> adres;
}

public class Adres implements Serializable {

    @DatabaseField(generatedId=true)
    private int id;

    @DatabaseField(foreign=true, …
Run Code Online (Sandbox Code Playgroud)

collections orm android ormlite foreign-collection

8
推荐指数
1
解决办法
2万
查看次数

如何在sqlite中重置自动增量序列号

如何在Ormlite中更新表sqlite_sequence?我只需要更新seq.如何通过ORMLite获取该表?

编辑

我找不到ORLite工具来做这个,所以我使用简单的sqlite查询.在我的类扩展OrmLiteSqliteOpenHelper我使用SQLiteDatabase进行更新.

EDIT2;)

在我的项目中,我坚持课课和课堂定义.

class Lesson{
    @DatabaseField(generatedId=true)
    private int id;
    ...
}

class WeekDefinitions{
    @DatabaseField(generatedId=true)
    private int id;
    @DatabaseField(foreign=true, columnName="lesson_id")
    private Lesson lesson;
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在,当我添加新课程时,id是递增的.例如

id = 1 Math
id = 2 English
id = 3 Medicine
Run Code Online (Sandbox Code Playgroud)

并在weekDefinition中:

id = 1 lesson_id = 1  nr = 20
id = 2 lesson_id = 1  nr = 22
id = 3 lesson_id = 2  nr = 32
...
id = 12 lesson_id = 3  nr = 3
Run Code Online (Sandbox Code Playgroud)

SQLite将此行添加到sqlite_sequence中(使用autoincrement时)

rowId = …
Run Code Online (Sandbox Code Playgroud)

sqlite android ormlite

8
推荐指数
4
解决办法
2万
查看次数

如何在显示自定义视图时调暗背景视图

当自定义视图显示时,如何调暗背景?在我的活动中,我有相对布局,背景中有一些照片.当用户做一些动作时 - FrameLayout出现在屏幕的中心 - 然后我想让它像对话框一样 - 在framelayout下调暗一切.

我怎样才能做到这一点?

layout android

5
推荐指数
1
解决办法
2766
查看次数