我已经成功实现onRetainNonConfigurationInstance()了我的主要功能,Activity以保存和恢复屏幕方向更改中的某些关键组件.
但看起来,当方向发生变化时,我的自定义视图将从头开始重新创建.这是有道理的,虽然在我的情况下它很不方便,因为所讨论的自定义视图是X/Y图,并且绘制的点存储在自定义视图中.
是否有一种狡猾的方法来实现类似于onRetainNonConfigurationInstance()自定义视图的东西,或者我是否需要在自定义视图中实现允许我获取并设置其"状态"的方法?
我正在全新安装的Fedora 14(Linux)上安装Android SDK.我安装了eclipse,并运行了tools/android sdk工具来安装SDK的所有Eclipse组件.当我自己选择DDMS时,我能够安装DDMS.
对于最后一个组件 - Android开发人员工具,我收到了下面粘贴的丑陋错误消息.
现在我陷入了Eclipse依赖地狱.
我搜索了Fedora中的可用软件包,但是找不到具有满足Eclipse依赖项所必需的文件的软件包.任何人都可以翻译Eclipse要求的内容以及它所属的Fedora包吗?
丑陋的错误:
Cannot complete the install because one or more required items could not be found.
Software being installed: Android Development Tools 0.9.9.v201009221407-60953 (com.android.ide.eclipse.adt.feature.group 0.9.9.v201009221407-60953)
Missing requirement: Android Development Tools 0.9.9.v201009221407-60953 (com.android.ide.eclipse.adt.feature.group 0.9.9.v201009221407-60953) requires 'org.eclipse.wst.sse.core 0.0.0' but it could not be found
Run Code Online (Sandbox Code Playgroud) 我onSharedPreferenceChanged在我的主要活动中实施了.
如果我更改主活动中的首选项,则会触发我的事件.
如果我通过我的首选项屏幕更改首选项(PreferenceActivity)我的事件不会在首选项被更改时触发(因为它是一个单独的活动和对sharedPreferences的单独引用?)
有人建议我应该如何克服这种情况?
谢谢!
EDIT1:我尝试在我的首选项活动中添加事件处理程序但它永远不会触发.在我的首选项活动的onCreate期间调用以下方法.当我更改值时,它永远不会打印消息(msg()是包装器Log.d).
private void registerChangeListener () {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener () {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
msg (" ***** Shared Preference Update ***** ");
Intent i = new Intent();
i.putExtra("KEY", key);
i.setAction("com.gtosoft.dash.settingschanged");
sendBroadcast(i);
// TODO: fire off the event
}
});
}
Run Code Online (Sandbox Code Playgroud) 在审核中:http://developer.android.com/reference/android/graphics/Canvas.html
我在想
translate():"使用指定的翻译预先锁定当前矩阵" - 这是什么意思?
我无法在互联网上的任何地方找到"preconcat"的好定义!我能找到它的唯一地方是Android源码 - 我开始怀疑它们是否成功了?:)
我熟悉"concat"或连接,这是附加的,那么什么是pre-concat?
我已经在Eclipse中编程Android大约一年了,我总是通过右键单击项目浏览器中的项目名称,然后"运行为",然后是"Android应用程序"来启动我的应用程序.一定有更好的方法...
有没有办法改变这个(三次鼠标点击):
"Right click on project" -> "run as" -> "Android Application"
对此(热键一键):
<My favorite hotkey>
所以我只需按一个按钮即可启动我的应用程序?
谢谢!
我有一个字符串,说"600sp",我希望从中得到整数部分(600).
如果我这样做,Integer.valueOf("600sp")由于字符串中遇到的非数字值"s",我得到一个例外.
获取整数部分的最快最干净的方法是什么?
谢谢!
如果我在我的Moto Droid A855上滑出键盘,它会崩溃我的测试应用程序,下面粘贴了堆栈跟踪.我不明白为什么?
此外,如果我用键盘输出我的应用程序,我的应用程序在启动时立即崩溃.
该应用程序由一个活动组成,该活动包含一个viewflipper作为主视图布局.viewflipper包含两个linearlayouts ...
堆栈跟踪:
06-10 21:10:17.652 E/AndroidRuntime( 3785): Uncaught handler: thread main exiting due to uncaught exception
06-10 21:10:17.668 E/AndroidRuntime( 3785): java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@447af0b8
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:667)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.app.ApplicationContext.unregisterReceiver(ApplicationContext.java:747)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:321)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.view.View.dispatchDetachedFromWindow(View.java:5835)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1076)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
06-10 21:10:17.668 E/AndroidRuntime( 3785): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
06-10 21:10:17.668 E/AndroidRuntime( …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,它最多可以上17个课程.我想开始将.java类文件组织成更直观的布局.
假设我想要一个名为"views"的源代码目录.当我使用Eclipse创建该目录时,它将我的包名称更改为com.xyz到com.xyz.views.
由于这个包名称(com.xyz.views)与我的应用程序的其余部分(com.xyz)不同,这是否会导致我做很多额外的工作来链接这些包?这会导致Android Market查看软件包名称并且或多或少地锁定到软件包名称这一事实会导致问题吗?
我正在着手一个由viewflipper组成的GUI Activity,我想包含10个linearlayout布局.
是否建议将所有布局放入相同的XML资源/布局文件中?
如果没有,是否有更有条理的方法来编写具有许多布局的viewflipper?
将同一文件中的所有内容都花费在显着的性能上吗?
我正着手为我的应用创建设置活动.我已经定义了PreferenceActivity一个很好的布局,包括一个ListPreference用户选择蓝牙设备的对象.我在动态填充列表时遇到问题.
我想填充ListPreference数组适配器的值(我将创建并填充相关的蓝牙设备名称).
如果这是一个微调视图,我可以打电话setAdapter().但是对于ListPreference对象我无法弄清楚如何附加适配器(findviewByID不会从View To转换ListPreference,所以我甚至无法获得对象的句柄).
我想附加一个适配器,然后使用值填充适配器,这反过来将填充ListPreferencewith值.