我是很新的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等?
我不一定要寻找代码转储,而是寻找逻辑的解释.
我基于用户交互动态添加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)
但这会阻止后退键功能.任何指向正确方向的人都会受到赞赏.
我有一个array
的boolean
条目:
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)
时间排名超过五次,最快的是:
在5334和11584 ns之间:
for (boolean value : myBooleanArray) {
if (value) {
return true;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)在160542和171417 ns之间:
Arrays.asList(myBooleanArray).contains(true);
Run Code Online (Sandbox Code Playgroud)在191833和205750之间ns:
Booleans.contains(myBooleanArray, true);
Run Code Online (Sandbox Code Playgroud)我有一个Android应用程序,我想在亚马逊的AppStore上提供.我的应用程序有一些基于位置的功能和相机功能,如果用户的设备是Kindle,我需要禁用它.有没有办法以编程方式检测用户的设备是否是Kindle?我知道我可以为Kindle和非Kindle构建不同的版本,但我想我首先会问是否有办法在代码中检测到这一点.
我正在寻找一种方法,在构建时将git 分支名称包含到我的 android apk 文件名中。
我想将我的 apk 文件命名为“ProjectName- gitbranchname.apk,在构建时自动命名。”
示例:“MyTestProject-master.apk”
我已经在线搜索并阅读了 gradle 文档,但找不到有关如何将分支名称包含到输出文件名中的参考。
一般来说,我知道如何使用 gradle 来构造文件名。我特别询问 git 分支参考。
目前,在重写Android Eclipse项目中的Activity中的方法时,我会:
"源">"覆盖/实施方法">"滚动列表"复选框,单击"确定".
步骤更少,是否有快捷方式?
有没有一种方法来设置并开始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.
我是Git和Github的新手,我正在试图弄清楚如何从Eclipse(Windows)推送到Github上的根目录.
我创建了一个名为MyProject的Github项目.MyProject是一个Android项目,具有通常的Android目录结构:
从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上目录层次结构是:
我该怎么做
?
我理解当我使用关键字调用其构造函数时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创建对象?
在JVM上运行的Java程序中,原始数据类型保证了位大小.例如
byte 8-bit
short 16-bit
int 32-bit
Run Code Online (Sandbox Code Playgroud)
等等.
Android上的这些位大小也是保证的吗?我一直在寻找Android开发者的文档进行确认.任何文档链接都表示赞赏.
我的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)
但同样:很多代码都是如此简单.有人可以建议一个优雅的优选单行代码来表达这个吗?