我正在尝试升级到Retrofit 2.0并在我的android项目中添加RxJava.我正在进行api调用,并希望在服务器发出错误响应的情况下检索错误代码.
Observable<MyResponseObject> apiCall(@Body body);
Run Code Online (Sandbox Code Playgroud)
并在RxJava调用中:
myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(MyResponseObject myResponseObject) {
//On response from server
}
});
Run Code Online (Sandbox Code Playgroud)
在Retrofit 1.9中,RetrofitError仍然存在,我们可以通过以下方式获得状态:
error.getResponse().getStatus()
Run Code Online (Sandbox Code Playgroud)
如何使用RxJava进行Retrofit 2.0?
我遇到了一个问题,我有一个包含多个片段的Activity.对于任何单个片段,您可以执行搜索操作,该工作正常...如果您从任何片段中搜索,它将显示一个新的Activity来处理搜索,然后将结果返回到Activity以处理显示新片段.问题是,在搜索操作之后,我希望能够清除(几乎)所有碎片popBackStackImmediate(...),因为saveInstanceState(...)被调用,我得到一个异常,说:
"java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState"
Run Code Online (Sandbox Code Playgroud)
onSaveInstanceState有人知道如何在调用后从后面的堆栈弹出?
如何在Android中获取国家/地区名称,如果已知地理坐标?如何使它成为最简单的方法?
我用以下build.gradle文件编译代码
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了将保存照片存入SDCARD,我已经打开了V23的权限对话框
如下截图
但我得到了以下错误
找不到Symbol Manifest.permission.WRITE_EXTERNAL_STORAGE
我把sdkVersion放到23但是为什么我仍然得到这个错误
我还是android的新手,所以我并不完全熟悉所有的视图组件.我正在努力围绕一个圆圈动态对齐按钮.
我想要实现的是添加n个按钮(n可以在创建时更改)到看起来像附加图像的视图:
我想避免使用absoluteLayout(但我愿意接受建议,如果这是解决它的唯一方法).我已经想出了按钮的x/y位置计算(暂时忽略按钮大小):
int iNumberOfButtons = 10;
double dIncrease = Math.PI * 2 / iNumberOfButtons,
dAngle = 0,
x = 0,
y = 0;
for( int i = 0; i < iNumberOfButtons; i++ )
{
x = 100 * Math.cos( dAngle ) + 200;
y = 100 * Math.sin( dAngle ) + 200;
dAngle += dIncrease;
// get button and set position?
}
Run Code Online (Sandbox Code Playgroud)
我想过在自定义视图中使用这个代码但是从我看到的视图需要从ViewGroup子类化到addView方法然后再次只有absoluteLayout似乎允许设置x,y位置......我是不知如何实现这个功能.
我可能稍后会在该视图中添加一些动画,因此如果可能的话,使用SurfaceView可能会很好,但这不是必需的.
我找到了这篇文章:一种在您的应用中搜索内容的新方法,我对这个机会感到非常兴奋.我想在谷歌搜索结果中显示我的应用程序内容,如下所示:
但是,本文没有关于如何在您的应用中实现此功能的任何信息.
我在我的应用程序中使用App Indexing API,如文章中所述:
这是我的代码:
...
private GoogleApiClient mClient;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_main);
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
public Action getAction() {
Thing object = new Thing.Builder()
.setName("Test Content")
.setDescription("Test Description")
.setUrl(Uri.parse("myapp://com.example/"))
.build();
return new Action.Builder(Action.TYPE_VIEW).setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
mClient.connect();
AppIndex.AppIndexApi.start(mClient, getAction());
}
@Override
public void onStop() {
AppIndex.AppIndexApi.end(mClient, getAction());
mClient.disconnect();
super.onStop();
}
...
Run Code Online (Sandbox Code Playgroud)
这是结果:
谷歌显示我的应用程序的测试内容,但没有描述和预览图像.有没有办法在Google搜索结果中添加说明和预览图片?(如Youtube或Twitter)
Android Marshmallow中是否有任何方法可以进行权限状态更改检测?
我还没看过广播......
我有两个DIV元素,其中一个具有绝对位置(主DIV的左下角).第二个DIV是隐藏的,只有通过点击链接才能显示.
我需要第二个出现在第一个下方.但是,由于第一个div的位置是绝对的,第二个位置出现在第一个div之上.
HTML代码:
<div class ="main-div">
<div class = "wrapper">
<div class ="first-div">
<a href ="blah"> <span>my link</span> </a>
//this is absolute positioned
</div>
<div class ="second-div">
//this only appears after clicking on a link
<form>
<textarea>
</textarea>
</form>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div.wrapper {
width:inherit;
float:left;
bottom:6px;
position:absolute;
padding: 0 0 0 0;
overflow: auto;
}
div.second-div {
padding-top: 2px
}
div.main-div{
background:{colour} url({image}) no-repeat 0 100%;
width:557px;
padding:8px 13px 4px 13px;
min-height:61px;
position:relative;
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我一直试图在我的应用程序上实施备份超过一个月,但直到现在都没有成功.我已经完成了Google文档通知的所有步骤:在Manifest上的Google Service Changes上注册(allowBackup,backupAgent和backup.api_key(google服务注册)等等...
清单部分:
<application
android:allowBackup="true"
android:backupAgent="my.package.MyBackupManagerClass">
<meta-data android:name="com.google.android.backup.api_key"
android:value="my-generated-key-by-google-service" />
Run Code Online (Sandbox Code Playgroud)
事实上,备份正在运行,但只使用本地传输,我已经使用bmgr备份/运行/恢复进行了测试:
bmgr list transports
* android/com.android.internal.backup.LocalTransport
com.google.android.gms/.backup.BackupTransportService
Run Code Online (Sandbox Code Playgroud)
但是,在尝试使用谷歌时的运输(云:com.google.android.gms/.backup.BackupTransportService)它没有工作,甚至没有叫我onCreate()的MyBackupAgentHelper.
我要提到的一点是,当我运行时:bmgr backup bmgr run
在运行命令之后,在logcat上显示了很多"现在暂存备份"(也显示我的应用程序包在此列表中)但它发生得非常快并且看起来事实上并没有完成备份,毕竟,甚至我的MyBackupHelper.onCreate()未被调用:
02-12 21:13:28.889: D/BackupManagerService(547): Now staging backup of com.google.android.talk
02-12 21:13:28.904: D/BackupManagerService(547): Now staging backup of com.google.android.dialer
02-12 21:13:28.907: D/BackupManagerService(547): Now staging backup of com.android.providers.settings
02-12 21:13:28.910: D/BackupManagerService(547): Now staging backup of com.sirma.mobile.bible.android
02-12 21:13:28.914: D/BackupManagerService(547): Now staging backup of com.android.sharedstoragebackup
02-12 21:13:28.919: D/BackupManagerService(547): Now staging backup of …Run Code Online (Sandbox Code Playgroud) 我有Activity,可以直接从浏览器启动,调用url.
活动代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Uri data = getIntent().getData();
Log.d(getClass().getName(), "onCreate data=" + data);
getIntent().replaceExtras(new Bundle());
getIntent().setAction("");
getIntent().setData(null);
getIntent().setFlags(0);
if (data != null && isValidUrl(data)) {
// open some special fragment
} else {
// open main fragment
}
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(MainActivity.class.getName(), "onDestroy");
}
//...
}
Run Code Online (Sandbox Code Playgroud)
应用清单代码:
...
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/> …Run Code Online (Sandbox Code Playgroud)