小编cel*_*tis的帖子

Android:sqlite:cursor:getColumnIndex

我在规范化的sqlite数据库上有一个相当复杂的查询(多个连接).查询执行SELECT*以启用一些自动属性选择逻辑(所以我无法消除"*")

我遇到的问题是我的结果集包含多个具有相同属性名称的列.例如,查询中每个表共有的一个属性是"_id".当我去调用时"cursor.getColumnIndex("_id")",返回的值始终是"_id"结果集列列表中最后一个属性的索引(即不是我想要的那个).我希望能够使用我的SQL别名前缀,cursor.getColumnIndex("A._id")但这不起作用.

问题

似乎cursor.getColumnIndex(AttributeName)返回最后一个"AttributeName"的索引.谁能证实这一点?另外,关于如何使用"AttributeName"返回第一个属性的索引的任何建议?或更好的具有"AttributeName"的Xth属性?

sqlite android normalize cursor

12
推荐指数
1
解决办法
5172
查看次数

如何以编程方式设置Android设备日期/时间

背景

我正在使用三星Galaxy标签(7")的Wi-Fi版本进行一个项目.在某些设备上,我们看到设备上的日期/时间被重置(不知道为什么)到某个日期在过去(如2000年1月1日).

问题(S)

如何以编程方式重置设备日期/时间?如果可能的话,我更愿意使用一些adb shell命令(我的shell脚本生锈).如果没有可以实现此目的的shell命令,有没有办法通过编写和安装应用程序来实现这一点(似乎是安全违规)?

android adb galaxy

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

TextAppearance主题

我想将主题中的文本外观设置为TextAppearnance.Large.这是我在styles.xml中做的事情(我的应用程序指向我的清单中的这个主题)

<style name="myTheme" parent="android:Theme.NoTitleBar.Fullscreen">  
 <item name="android:textAppearance">@android:style/TextAppearance.Large</item>  
</style>
Run Code Online (Sandbox Code Playgroud)

问题:我的文字仍然显示得很小.

问题(S):

  • 在我的活动中尝试使用预定义的TextAppearance时,我做错了什么?即如何正确指定此TextAppearance?
  • TextSpearance.Large/Medium/Small的TextSizes在哪里定义?

android themes coding-style

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

在android.intent.action.USER_PRESENT上将任务带到前面

背景技术
我有一个具有多个活动的任务(即app).

问题
如何将任务放在前面而没有为该任务重新排序活动堆栈?

USER SCENARIO
当设备启动时(即收到android.intent.action.BOOT_COMPLETED广播后),我的应用程序启动,调用此任务1,并显示活动A(下面的代码).当用户与任务1交互时,他/她在堆栈上打开活动B(活动B现在当前显示在屏幕上).接下来,用户点击主页键并打开其他任务,将其命名为任务2,然后锁定屏幕.用户解锁屏幕,我的应用程序广播并接收android.intent.action.USER_PRESENT意图(请参阅下面的清单摘录).我按照预期在我的IntentReceiver类中执行startActivity()调用,但不是仅将任务带到前台,而是创建一个新任务,称之为任务3.

我已经尝试过的
更改如果我将Intent.FLAG_ACTIVITY_NEW_TASK修改或更改为任何其他意图,那么我会收到以下错误消息:

从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志.这真的是你想要的吗?

...所以看起来我必须使用Intent.FLAG_ACTIVITY_NEW_TASK.

如果我将主活动的lauchMode更改为"singleTask",则将正确的任务置于前台(即不创建新任务),但重新排序活动堆栈以使activity_A位于堆栈顶部.

在这一点上,我不知道如何将现有任务带到前台,而不是在监听android.intent.action.USER_PRESENT意图时重新排序活动堆栈,任何帮助都将不胜感激.

顺便说一句,这个应用程序正在公司拥有的Android设备上交付给一组员工,而不是一般公众.

CODE SNIPPETS
要启动应用程序,我在清单文件中设置了广播接收器.

<application
       :
    <activity
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:name=".activities.activity_A" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
       :
    <receiver
        android:enabled="true"
        android:name=".utilities.IntentReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
        <intent-filter >
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

在我的IntentReceiver类中,我开始我的主要活动......

public class IntentReceiver extends BroadcastReceiver {

@Override

    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent(context, activity_A.class);  
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);  
    } …
Run Code Online (Sandbox Code Playgroud)

android task android-activity

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