我有一个单例,它存储了一些关于我的应用程序用户的谨慎信息.目前,它存储用户的登录信息和用户的位置.
1)该位置通过服务找到.目前,服务直接引用我的单身人士将经度和纬度填入其中.我想使用BroadcastReceiver来发送单例听到并用来更新值的广播.
但是,要注册BroadcastReceiver,我需要在我的单例中使用Context.什么是实现我想要的最简单的方法.BroadcastReceiver可能不是合适的对象吗?
2)另外,我使用单身人士时会遇到什么问题?我认为Android可能会在任何给定时间回收这个内存(这显然是坏事); 那我该怎么办呢?是否会传入应用程序的Context并将其存储在成员变量中?
Android文档指出:"但是,静态的生命周期并不在你的控制之下;因此要遵守生命周期模型,应用程序类应该启动并拆除onCreate()和onTerminate中的这些静态对象( )应用程序类的方法,"但我不完全确定如何实现这一点.
我想做这样的事情:
假设我有两个表,myTable1和myTable2.假设这两个表都有myColumn1和myColumn2列.
update
myTable1
set
myTable1.myFlagColumn = 1
where
myTable1.myColumn1, myTable1.myColumn2
in
(select myTable2.myColumn1, myTable2.myColumn2 from myTable2)
Run Code Online (Sandbox Code Playgroud)
基本上,如果myTable1和myTable2中的两列匹配,我想更改myTable1中的值.
这可能吗?
旋转的ProgressBar不会在白色背景上"显示",因为微调器是白色的.Android是否包含任何ProgressBar样式以与白色背景形成对比?或者我需要自己上皮吗?
有没有办法使Toast消息的持续时间比Toast.LENGTH_LONG长.我觉得这段时间不够长,用户无法阅读我正在显示的通知.
当ListView中的项目列表长于ListView的大小时,您将看到一个阴影,表明上面或下面有更多项目.默认情况下,此阴影为黑色.这是不可取的.
如果我将cacheColorHint设置为以下内容:
android:cacheColorHint="#00000000"
Run Code Online (Sandbox Code Playgroud)
阴影将是透明的,显示我已设置为布局背景的drawable.这也是不可取的.
我希望简单地将阴影的颜色更改为更浅的黑色,或者可能是灰色.有没有办法指定这个?
还有,有办法改变阴影的大小吗?
我有一个扩展Parcelable的类.它有一个成员变量,它是另一个类的ArrayList,它也扩展了Parcelable.
我将Intent中的MyClass1对象传递回Activity并将其读入.当构造函数到达in.readTypedList时,应用程序崩溃并出现以下错误:
04-11 14:19:11.223: E/AndroidRuntime(502): Uncaught handler: thread main exiting due to uncaught exception
04-11 14:19:11.234: E/AndroidRuntime(502): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { (has extras) }} to activity {com.mypackage.app/com.mypackage.app.activity.MyActivity}: java.lang.NullPointerException
04-11 14:19:11.234: E/AndroidRuntime(502): at android.app.ActivityThread.deliverResults(ActivityThread.java:3329)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3371)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.app.ActivityThread.access$2700(ActivityThread.java:119)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.os.Looper.loop(Looper.java:123)
04-11 14:19:11.234: E/AndroidRuntime(502): at android.app.ActivityThread.main(ActivityThread.java:4363)
04-11 14:19:11.234: E/AndroidRuntime(502): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 14:19:11.234: E/AndroidRuntime(502): at java.lang.reflect.Method.invoke(Method.java:521)
04-11 …Run Code Online (Sandbox Code Playgroud) 我的布局中有一个ImageView用于列表中的各个项目.
ImageView的src是drawable文件夹中的XML文件,用于定义在按下项目的各种状态期间要使用的图像.
但是,我注意到当您单击列表行(而不是ImageView本身)时,会激活分配给ImageView的选择器.它实际上并没有触及ImageView的onClick代码,但是图像会像点击一样切换.
在某些情况下,这实际上是一种理想的效果,但在这种特定情况下并非如此.有没有办法阻止这种情况发生?
我创建了一个收件箱Activity,我正在镜像Android附带的默认Mail应用程序的一些功能.
在Mail中,未读取的邮件的背景颜色比列表中其他项目的颜色浅.我通过在我的Adapter的getView方法中设置调用setBackgroundResource来镜像这个.setBackgroundColor不做任何事情.
if (!msgSum.getIsRead()) {
LinearLayout l = (LinearLayout) v.findViewById(R.id.inbox_background);
if (l != null) {
l.setBackgroundResource(R.color.inbox_unread);
}
}
else {
LinearLayout l = (LinearLayout) v.findViewById(R.id.inbox_background);
if (l != null) {
l.setBackgroundResource(R.color.inbox_read);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,这些项目失去了突出显示的能力.我的意思是,通常如果您在使用模拟器时滚动鼠标滚轮(或者如果您的Android设备具有某种滚动功能,则使用它),列表项将变为黄色,就像它们具有焦点一样.
如何在不失去突出显示列表项的能力的情况下完成我想要做的事情?
谢谢你的帮助
我正在尝试在我的应用程序中实现一个数据库.我正在关注编写自己的ContentProvider的教程,但我对SQLiteOpenHelper :: getType感到困惑.我们应该编写它,本质上,写一个开关,返回与我们正在处理的数据类型相对应的MIME类型.
我不完全理解它.我不确定,即使我有一个例子,这里应该传达的是什么.如何确定不同数据表的MIME类型?有人能给我一个很好的解释吗?
我正在构建一个应用程序,要求用户登录并获取用户ID.此id是我的扩展Application类的成员变量.
我希望应用程序识别何时/如果此变量被清除,如果是,则抛出我的登录屏幕并销毁它后面的Activity堆栈.
以下是我认为我将要做的事情:
扩展活动和ListActivity(目前我只使用两种类型的活动).在onResume()处理程序中,检查是否设置了用户标识.如果没有,请抛出登录屏幕并销毁其后面的其余活动堆栈.我的所有活动都将来自这些新的扩展活动.
我的问题是我不知道如何销毁特定Activity后面的Activity堆栈.有任何想法吗?
一个想法是让广播接收侦听特定消息,告诉活动自杀,但我希望Android已经有适合这种情况的东西.
更新:
另外,有没有办法清除整个Activity堆栈?我想覆盖Activity上的onBackPressed()处理程序并将Activity堆栈吹出,以便用户被带回Android主屏幕.
android ×9
listview ×3
database ×1
highlight ×1
listactivity ×1
parcelable ×1
progress-bar ×1
singleton ×1
sqlite ×1
toast ×1