我想编程我的Android应用程序来刷新它在ButtonClick上的当前活动.我在活动布局的顶部有一个按钮可以完成这项工作.当我点击按钮时,当前活动应该重新加载 - 就像设备重启一样.
谢谢
我在Welcome Activity上有一些基本代码,它像往常一样简单地绑定List适配器:
final ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, android.R.id.text1);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Run Code Online (Sandbox Code Playgroud)
这曾经有效,直到我更新到API级别25.此时,没有其他更改,微调器下拉列表的文本变得不可读:
我的主题的父级是"Theme.AppCompat.Light.NoActionBar",但同样,我没有玩那里的颜色,因为它显示正确(API <25)没有任何改变.任何的想法?
我知道我可以用一些setTextColor()内部修复它spinner.setOnItemSelectedListener(),但主要的一点是理解为什么它工作,现在它没有,因为这可能是我身边某些概念错误的标志,甚至某种Android bug.事实上,我注意到相同的问题(深色背景上的黑色文本)在非常标准的小部件/应用程序上,如Cyanogen/LineageOS默认天气一:
我按照http://www.achartengine.org/content/goodies.html页面上的演示说明进行操作
我成功导入了演示项目,但每个图表都NoClassDefFoundError在运行时抛出一个,类似于:
java.lang.NoClassDefFoundError:
org.achartengine.model.XYMultipleSeriesDataset
Run Code Online (Sandbox Code Playgroud)
achartengine-1.0.0.jar位于构建路径上,并在"Referenced Libraries"下报告.我想这是一个新手问题,但我决定报告它,因为我只是按原样导入了演示项目 并尝试在我的手机上运行它.
我是否需要其他步骤,而不是在"好东西"页面上列出?
使用Volley处理大型响应时会发生一些不好的事情:
String url = AppHelper.DOMAIN + "/service/pages/profile_update.json";
this.infoTextView.setText(getString(R.string.profile_info_updating));
final StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject json = new JSONObject(response);
if (json.getBoolean("success")) {
// manage JSON object here
} else {
Toast.makeText(ProfileActivity.this,
getString(R.string.connection_problem_server),
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
ProfileActivity.this.infoTextView.setText(
getString(R.string.profile_info_updating_error));
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
ProfileActivity.this.infoTextView.setText(
getString(R.string.profile_info_updating_error));
if (error.networkResponse != null && error.networkResponse.statusCode == 401) {
Toast.makeText(ProfileActivity.this,
getString(R.string.connection_problem_permission),
Toast.LENGTH_LONG).show(); …Run Code Online (Sandbox Code Playgroud) 我习惯在真实设备和AVD上测试应用程序.由于ICS虚拟设备非常慢,我决定尝试加速仿真器.我按照说明使用英特尔虚拟化技术(x86系统映像目标)成功设置了加速虚拟机.
模拟器工作,而且速度非常快.但是在第二个应用程序上传/安装时,它突然重新启动.它在第一次启动/上传时总能正常工作,但是当我编辑某些东西并再次测试应用程序时,它会"从头开始"重新启动(显示android徽标).
我没有使用快照保存/恢复.LogCat 不会报告错误,我使用的是Android SDK工具Rev.20和platform-tools rev.12,关于Win7.
Intelhaxm似乎工作正常,报告"运行"状态.重启后,我必须再次上传应用程序,这很烦人.
有没有人遇到同样的问题,也许解决了它?
我正在努力使游戏API工作,参考https://github.com/playgameservices/android-samples/blob/master/BaseGameUtils/src/com/google/example/games/basegameutils/BaseGameActivity.java作为示例码.
我非常相似,基本上我正在尝试连接游戏客户端并收到否定答案.当尝试使用startResolutionForResult()来管理它时,这就是我得到的:
E/Volley(15638): [1492] il.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/112370814111712506xxx
E/Volley(15638): [1492] il.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/112370814111712506xxx
E/SignInIntentService(15638): Access Not Configured
[...]
E/LoadSelfFragment(15748): Unable to sign in - application does not have a registered client ID
Run Code Online (Sandbox Code Playgroud)
最后一条消息,"应用程序没有注册的客户端ID"让我想到了这个问题...但我不认为我的问题与应用程序ID /客户端ID有关,因为我在另一个上使用相同的API密钥机.我非常确定从当前机器的debug.keystore派生的SHA1正确性.
问题似乎与我正在使用的测试地址有关,奇怪的是我没有收到总是相同的回复:使用相同的键和设置,我有时得到:
E/SignInIntentService(15638): Access Not Configured
Run Code Online (Sandbox Code Playgroud)
甚至:
E/SignInIntentService(15638): Unable to load player
Run Code Online (Sandbox Code Playgroud)
我startResolutionForResult()在OnConnectionFailedListener中使用它,它会短暂显示登录屏幕,但随后会报告错误.
另一个奇怪的事情是调用了onActivityResult(),结果代码是10004
我无法理解的最后一件事是,在登录失败后,为了循环我的应用程序,一遍又一遍地调用onConnectionFailed()方法.相关代码是:
public void initClient() {
GamesClient.Builder gcBuilder = new GamesClient.Builder(this, cb, cf);
gcBuilder.setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
//gcBuilder.setScopes(mScopes);
mGamelient = gcBuilder.create();
mSchiacciameleView.setGameClient(gcBuilder.create()); …Run Code Online (Sandbox Code Playgroud)我最近将旧应用程序的后台服务迁移到WorkManager。在最近的设备上(包括 sdk 22),它看起来不错,运行重复的工作单元并按预期在设备重新启动时安排它们。
问题是当我针对旧版本(旧在这里非常相关)进行测试时,Android sdk 14 是我的minSdkVersion. 顺便说一句,也WorkManager应该有相同的:根据doc向后兼容 API 14。如标题所述,我得到的错误是:
java.lang.RuntimeException: Unable to get provider androidx.work.impl.WorkManagerInitializer: java.lang.ClassNotFoundException: Didn't find class "androidx.work.impl.WorkManagerInitializer" on path: /data/app/com.example.myapp.apk
at android.app.ActivityThread.installProvider(ActivityThread.java:4822)
Run Code Online (Sandbox Code Playgroud)
我没有任何自定义 WorkManager 配置/初始化,我只是添加了
implementation 'androidx.work:work-runtime:2.2.0'
Run Code Online (Sandbox Code Playgroud)
到我的模块的 gradle 并非常典型地使用它来安排后台操作。
我想避免序列化(在JMS/AMF中),但仍然使用JPA/Hibernate保持字段.
是transient修改我的朋友?@Transient注释和transient修饰符是否相关?
java规范精确地指出,瞬态字段不会被系统服务保存到持久存储中.但是hibernate是一个系统服务吗?(我不这么认为) http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78119
并且java.io.Serialisable接缝表明a out.writeObject and in.readObject要求序列化
http://download.oracle.com/javase/1.4.2/docs/api/java/io/Serializable.html
任何见解?
也许我应该写一个快速测试,但我会对一个规范更有信心.
谢谢 !
在JavaFX的上下文中,在更改时属性"无效"是什么意思?我不明白使用这个术语的原因.
JavaFX属性是可观察的对象并包装字段值.因此,当属性更新或变为无效时,会通知其listerners /观察者.这是什么意思?
我认为在大小意向的额外限制为1MB,作为报告的文档.无论如何,有一天我失去了追逐这个可怕的TransactionTooLargeException:
E/JavaBinder(368): !!! FAILED BINDER TRANSACTION !!!
Exception when starting activity android/com.android.internal.app.ChooserActivity
android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:705)
at com.android.server.am.ActivityStack.realStartActivityLocked(ActivityStack.java:690)
at com.android.server.am.ActivityStack.startSpecificActivityLocked(ActivityStack.java:799)
at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1743)
at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1381)
at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1129)
at com.android.server.am.ActivityStack.activityPaused(ActivityStack.java:1027)
at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:4288)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:381)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1611)
at android.os.Binder.execTransact(Binder.java:367)
at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)
糟糕的是startActivity失败了,但是ActivityManager不断重复它,产生无限的进程.这似乎在这篇博客文章中得到了证实,其中作者指出了86389个字符的"限制".我的相关代码很简单:
Intent myIntent = new Intent(activity, VacancySwipeActivity.class);
//myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle ex = new Bundle();
ex.putSerializable(Constants.Extra.VACANCY, vacancies);
ex.putString("token", token);
ex.putString("cosa", cosa.getText().toString());
ex.putInt("dist", searchDistance.getProgress());
ex.putString("dove", dove.getText().toString());
if (ret.getSearchLocation() != null) {
ex.putParcelable("userLoc", …Run Code Online (Sandbox Code Playgroud) android ×7
java ×2
achartengine ×1
android-4.0-ice-cream-sandwich ×1
androidx ×1
bindable ×1
binding ×1
google-api ×1
hibernate ×1
javafx ×1
jpa ×1
listener ×1
observable ×1
persistence ×1