小编Pie*_*rtz的帖子

如何在sqlite for android中实现一对多对象数据库

我是很新的SQLite,并SQL和我与如何处理以下挣扎:

我的应用程序将显示社区成员列表.如果我点击一个成员,我可以看到成员发布的帖子列表.帖子是具有名称,时间和消息的对象.如何将其存储在SQLite数据库中,以便我可以查询数据库userid并获取特定用户的帖子列表.

我有一个包含这些列的Users表:

USER_ID | NAME
Run Code Online (Sandbox Code Playgroud)

我有一个包含这些列的推文表:

USER_ID | NAME | TIME | MESSAGE
Run Code Online (Sandbox Code Playgroud)

我的问题是:link这两个表的最佳方法/结构是什么?我是否为每个用户创建一个新的推文表,或者我是否将所有推文存储在一个长表中,首先是用户1的推文,然后是用户2等?

我不一定要寻找代码转储,而是寻找逻辑的解释.

sql sqlite android

11
推荐指数
3
解决办法
1万
查看次数

弹出最后一个片段时处理后退键

我基于用户交互动态添加Fragments到我的Activity.当我按后退键时,弹出片段.但是,当我按下第一个添加到堆栈的片段的后退键时,"活动"显示空布局.我希望Activity在这一点上调用`finish()'并消失.我试过了:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if(keyCode == KeyEvent.KEYCODE_BACK){
        if(getFragmentManager().getBackStackEntryCount()==0){
            finish();
            return true;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但这会阻止后退键功能.任何指向正确方向的人都会受到赞赏.

android android-fragments

9
推荐指数
2
解决办法
2699
查看次数

检查布尔数组是否包含true的最快方法

我有一个arrayboolean条目:

boolean[] myBooleanArray = new boolean[24];
Run Code Online (Sandbox Code Playgroud)

目前我检查它是否包含如此真实:

Arrays.asList(myBooleanArray).contains(true);
Run Code Online (Sandbox Code Playgroud)

这是检查布尔数组的最快方法吗?如果没有,执行此检查的最快方法是什么?

编辑:

我通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,将您的答案中的方法计时如下:

boolean[] myBooleanArray = new boolean[24];

long startTime = System.nanoTime();
suggestedMethod(myBooleanArray);
long endTime = System.nanoTime();

long duration = endTime - startTime;
Log.i("timetest", Long.toString(duration));
Run Code Online (Sandbox Code Playgroud)

时间排名超过五次,最快的是:

  1. 在5334和11584 ns之间:

    for (boolean value : myBooleanArray) {
        if (value) {
            return true;
        }
    }
    return false;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在160542和171417 ns之间:

    Arrays.asList(myBooleanArray).contains(true);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在191833和205750之间ns:

    Booleans.contains(myBooleanArray, true);
    
    Run Code Online (Sandbox Code Playgroud)

java

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

确定设备是否为Kindle

我有一个Android应用程序,我想在亚马逊的AppStore上提供.我的应用程序有一些基于位置的功能和相机功能,如果用户的设备是Kindle,我需要禁用它.有没有办法以编程方式检测用户的设备是否是Kindle?我知道我可以为Kindle和非Kindle构建不同的版本,但我想我首先会问是否有办法在代码中检测到这一点.

android kindle

7
推荐指数
3
解决办法
3034
查看次数

如何在apk文件名中自动包含git分支名称

我正在寻找一种方法,在构建时将git 分支名称包含到我的 android apk 文件名中。

我想将我的 apk 文件命名为“ProjectName- gitbranchname.apk,在构建时自动命名。”

示例:“MyTestProject-master.apk”

我已经在线搜索并阅读了 gradle 文档,但找不到有关如何将分支名称包含到输出文件名中的参考。

一般来说,我知道如何使用 gradle 来构造文件名。我特别询问 git 分支参考。

git android gradle

7
推荐指数
2
解决办法
2992
查看次数

Eclipse图标装饰的含义

在Eclipse的Package Explorer View中,对象可以有一个由橙色矩形(或圆柱体)组成的装饰,如下所示:

在此输入图像描述

我在Eclipse Indigo 的图标参考中找不到它.

这是什么意思?

java eclipse

6
推荐指数
1
解决办法
1991
查看次数

是否有一个快捷方式来覆盖Eclipse中的Android Framework类中的方法?

目前,在重写Android Eclipse项目中的Activity中的方法时,我会:

"源">"覆盖/实施方法">"滚动列表"复选框,单击"确定".

步骤更少,是否有快捷方式?

eclipse android

6
推荐指数
1
解决办法
4634
查看次数

如何将animation-list设置为xml属性

有没有一种方法来设置并开始xml animation-list作为一个xml属性?我可以通过以下方式以编程方式设置和启动它:

    ImageView img = (ImageView) findViewById(R.id.loadingImageView);
    img.setBackgroundResource(R.drawable.loading_animation);
    AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
    frameAnimation.start();
Run Code Online (Sandbox Code Playgroud)

动画列表是:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
//...
android:oneshot="false" >

<item
    android:drawable="@drawable/loading_anim_frame_one"
    android:duration="50"/>
 <item
    android:drawable="@drawable/loading_anim_frame_two"
    android:duration="50"/>
Run Code Online (Sandbox Code Playgroud)

等等.

有没有办法xml只用标记来做这个,即没有java代码?

如果没有,是否有办法至少将其设置为xml属性,然后以编程方式启动它?

我不能使用单个drawable的旋转,因为动画按顺序包含几个drawable.

android android-animation android-xml

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

如何将Eclipse项目推送到Github

我是Git和Github的新手,我正在试图弄清楚如何从Eclipse(Windows)推送到Github上的根目录.

我创建了一个名为MyProject的Github项目.MyProject是一个Android项目,具有通常的Android目录结构:

  • 我的项目
  • src(+ res,资产等)

从Eclipse我将我的Android项目MyGame推送到MyProject.MyProject现在成为MyGame的子目录,因此除非用户首先在Github上单击MyProject以向下钻取目录层次结构中的一个级别,否则MyProject中的自述文件不可见.

如何推送MyGame以使其内容(src文件夹,res文件夹,自述文件)在Github项目的根级别可见.

更新:我尝试使用命令行:

git remote add origin git@github.com:username/reponame.git
git push origin master
Run Code Online (Sandbox Code Playgroud)

这有相同的结果,在Github上目录层次结构是:

  • 我的项目
  • MyGame
  • SRC

我该怎么做

  • 我的项目
  • SRC

git android github

3
推荐指数
1
解决办法
1415
查看次数

使用括号列表时如何创建数组对象

我理解当我使用关键字调用其构造函数时array,Java会创建一个对象new:

int[] myIntArray = new int[3];
Run Code Online (Sandbox Code Playgroud)

但如果我反而写

int[] myIntArray = {1,2,3};
Run Code Online (Sandbox Code Playgroud)

一个array对象被创建,但我还没有调用它的构造函数new.这是如何工作的 - 如何在不调用构造函数的情况下用Java创建对象?

java

3
推荐指数
2
解决办法
189
查看次数

Android上的Java原始类型位大小

在JVM上运行的Java程序中,原始数据类型保证了位大小.例如

byte      8-bit
short    16-bit
int      32-bit
Run Code Online (Sandbox Code Playgroud)

等等.

Android上的这些位大小也是保证的吗?我一直在寻找Android开发者的文档进行确认.任何文档链接都表示赞赏.

java android

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

用于将返回值限制在两个值之间的最短代码

我的Android应用程序中有一个方法,它采用动态设置的字体大小,并返回一个比例较小的字体大小.它从getTextSize()获取的值用于标题,较小的out值用于正文文本.目前它写成:

public int getSmallerTextSize(){
    int textSize = (int)Math.round(getTextSize() * 0.8);

    if(textSize > 20){
        textSize = 20;
    }else if(textSize < 10){
        textSize = 10;
    }

    return textSize;
}
Run Code Online (Sandbox Code Playgroud)

我想找一个更短,更少笨重的方式来表达这一点.一种选择是:

public int getSmallerTextSize(){
    int textSize = (int)Math.round(getTextSize() * 0.8);

    textSize = textSize > 10 ? textSize : 10;
    textSize = textSize > 20 ? 20 : textSize;

    return textSize;
}
Run Code Online (Sandbox Code Playgroud)

但同样:很多代码都是如此简单.有人可以建议一个优雅的优选单行代码来表达这个吗?

java android if-statement

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