小编Art*_*gin的帖子

使用Retrofit 2.0和RxJava获取响应状态代码

我正在尝试升级到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?

android android-networking rx-java retrofit rx-android

101
推荐指数
3
解决办法
5万
查看次数

saveInstanceState()之后的popBackStack()

我遇到了一个问题,我有一个包含多个片段的Activity.对于任何单个片段,您可以执行搜索操作,该工作正常...如果您从任何片段中搜索,它将显示一个新的Activity来处理搜索,然后将结果返回到Activity以处理显示新片段.问题是,在搜索操作之后,我希望能够清除(几乎)所有碎片popBackStackImmediate(...),因为saveInstanceState(...)被调用,我得到一个异常,说:

"java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState"
Run Code Online (Sandbox Code Playgroud)

onSaveInstanceState有人知道如何在调用后从后面的堆栈弹出?

android android-fragments

35
推荐指数
4
解决办法
2万
查看次数

从坐标获取国家?

如何在Android中获取国家/地区名称,如果已知地理坐标?如何使它成为最简单的方法?

gps android google-maps geolocation

20
推荐指数
3
解决办法
2万
查看次数

在v23上找不到Symbol Manifest.permission.WRITE_EXTERNAL_STORAGE

我用以下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 android-manifest android-permissions

20
推荐指数
3
解决办法
2万
查看次数

围绕圆圈动态排列按钮

我还是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可能会很好,但这不是必需的.

android android-widget android-layout

12
推荐指数
1
解决办法
5185
查看次数

如何将我的应用程序内容与描述和预览添加到Google搜索结果中?

我找到了这篇文章:一种在您的应用中搜索内容的新方法,我对这个机会感到非常兴奋.我想在谷歌搜索结果中显示我的应用程序内容,如下所示:

Google In Apps Search

但是,本文没有关于如何在您的应用中实现此功能的任何信息.

我在我的应用程序中使用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 google-search android-search google-app-indexing

11
推荐指数
1
解决办法
303
查看次数

Android Marshmallow - 权限状态更改

Android Marshmallow中是否有任何方法可以进行权限状态更改检测?

我还没看过广播......

android android-permissions android-6.0-marshmallow

10
推荐指数
1
解决办法
4205
查看次数

将Div放置在另一个DIV下方

我有两个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)

在此先感谢您的帮助.

css

8
推荐指数
1
解决办法
5万
查看次数

Android备份管理器仅适用于本地传输

我一直试图在我的应用程序上实施备份超过一个月,但直到现在都没有成功.我已经完成了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)

android android-backup-service

7
推荐指数
1
解决办法
1758
查看次数

如何在从url打开后清除活动中的意图数据?

我有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)

android android-intent android-activity

7
推荐指数
2
解决办法
7653
查看次数