我想在我的Android应用中扩展应用程序.我这样做是为了创建一个名为MyApplication的扩展Application对象并将其添加到清单中.
我现在想添加一些getter和setter来保存一些信息.看起来我需要将应用程序Context传递给任何不包含Context的类.
例如,假设我创建了一个名为MyObject的类(在自己的java文件中):
public class MyObject {
public void doStuff() {
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我如何从doStuff()访问MyApplication?看起来我需要将应用程序Context传递给MyObject.这是典型的吗?是否有泄漏的可能性?
另外,为了确保我清楚,MyApplication(以及其中的变量)是否会在整个应用程序的生命周期中存在?无论哪种方式都没关系.我只是想确保在需要时考虑到这一点.
最后,任何链接到一些示例源以显示扩展应用程序有用的不同内容将是值得赞赏的.
我有一个Web服务,它在云中查询一些数据,然后填充ListView.
我想向用户显示某种旋转指示器,让他们知道正在查询云.
我不希望在其上显示带有微调器的弹出窗口,因为我希望我的用户仍然能够使用该应用程序.我将此用于登录屏幕,但此处不适用.
有没有内置的方法来做到这一点?我可以通过包含我自己的旋转图像资源并在查询云时隐藏/显示资源来自己破解它,但我希望有一些内置资源,所以我不必使用自己的资源.
我最初有两个ListActivity类.
我正在尝试使用一个Activity,并使用ViewFlipper在两个列表之间进行翻转.
除了一个问题外,它似乎工作得很好.如果我旋转模拟器,我将随机崩溃.它不会每次都发生,我无法找出触发它的特定工作流程.这是错误:
01-12 16:28:58.292: WARN/dalvikvm(877): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
01-12 16:28:58.292: ERROR/AndroidRuntime(877): Uncaught handler: thread main exiting due to uncaught exception
01-12 16:28:58.312: ERROR/AndroidRuntime(877): java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@43d44458
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:667)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.app.ApplicationContext.unregisterReceiver(ApplicationContext.java:747)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:321)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.view.View.dispatchDetachedFromWindow(View.java:5835)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1076)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
01-12 16:28:58.312: ERROR/AndroidRuntime(877): at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1570)
01-12 16:28:58.312: …Run Code Online (Sandbox Code Playgroud) 我不得不格式化并从昨天开始,我正在努力让我的项目重新开始运行.
我使用路标库进行OAuth身份验证.我导入了我的项目,Eclipse在文本编辑器中没有给我任何错误.但是,当我运行我的应用程序并点击oauth代码时,我的应用程序会发生以下错误:
04-25 15:07:04.485: E/dalvikvm(344): Could not find class 'oauth.signpost.commonshttp.CommonsHttpOAuthConsumer', referenced from method com.myapp.app.ws.WebService.addHeaders
Run Code Online (Sandbox Code Playgroud)
该项目似乎找到了jar文件就好了.它们显示在Java Build Path - > Libraries选项卡中.
我不太确定我在这里缺少什么.想法?
我有一个带有Button的布局:
<Button
android:id="@+id/myapp_new"
style="@style/header_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/header_button"
android:gravity="center"
android:text="new" />
Run Code Online (Sandbox Code Playgroud)
按钮的样式定义如下:
<style name="header_button" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/white</item>
<item name="android:textSize">16sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
当我在手机上打开此活动时,我收到了崩溃.崩溃发生在设置内容视图的行中:
setContentView(R.layout.layout_tags);
Run Code Online (Sandbox Code Playgroud)
如果我删除android:background参数,崩溃就会消失.我不明白,因为drawable包含在应用程序中,它可以在其他设备上正常工作,包括模拟器.
我将在此线程的底部发布错误日志.
正如我所说,这次崩溃只发生在我的一台设备上(我有2 +模拟器).它发生在运行Android 2.2.1的旧手机上,但在我的模拟器(运行2.2)或我的新手机(运行4.1.2)上没有发生.
最大的区别是我的设备崩溃的屏幕分辨率很低.我在ldpi文件夹中没有图像.我的印象是Android会自动选择下一个文件夹中的图像.此外,我有很多其他图像加载得很好.
我真的想将我的应用程序发布到Google Play商店,但这让我感到震惊.我担心这种崩溃会发生在其他人的手机上,即使我只能在一台设备上重现它.有没有人有任何想法?我迷路了.
11-26 12:03:04.740: E/AndroidRuntime(2800): FATAL EXCEPTION: main
11-26 12:03:04.740: E/AndroidRuntime(2800): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.app/com.myapp.app.activity.ActivityTags}: android.view.InflateException: Binary XML file line #65: Error inflating class android.widget.Button
11-26 12:03:04.740: E/AndroidRuntime(2800): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-26 12:03:04.740: E/AndroidRuntime(2800): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-26 12:03:04.740: E/AndroidRuntime(2800): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-26 12:03:04.740: E/AndroidRuntime(2800): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-26 12:03:04.740: …Run Code Online (Sandbox Code Playgroud) 我看到很多关于获取GregorianCalendar或Date对象并打印"yyyyMMdd"格式化字符串的问题.
但是,我想走向相反的方向.
我有一个"yyyyMMdd"格式的字符串,我想创建一个GregorianCalendar对象.
我可以很容易地解析这个并调用一系列.set()方法,但我想知道是否有一个光滑和简单的方法.