小编Rém*_*VID的帖子

我们如何使用Retrofit 2处理不同的响应类型?

我有一个webservice,它返回一个序列化的MyPOJO对象列表:

[
  { //JSON MyPOJO },
  { //JSON MyPOJO }
]
Run Code Online (Sandbox Code Playgroud)

要么是错误对象:

{  
  'error': 'foo', 
  'message':'bar' 
}
Run Code Online (Sandbox Code Playgroud)

使用retrofit2,我该如何检索错误?

Call<List<MyPOJO>> request = ...
request.enqueue(new Callback<List<MyPOJO>>() {
  @Override
  public void onResponse(Response<List<MyPOJO>> response) {
      if (response.isSuccess()) {
          List<MyPOJO> myList = response.body();
          // do something with the list...
      } else {
          // server responded with an error, here is how we are supposed to retrieve it
          ErrorResponse error = ErrorResponse.fromResponseBody(apiService.getRetrofitInstance(), response.errorBody());
          processError(error);
          // but we never get there because GSON deserialization throws an error …
Run Code Online (Sandbox Code Playgroud)

android retrofit2

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

如何制作DialogFragment模式?

我有一个DialogFragment:

public static class CharacteristicDialog extends DialogFragment {
        int mNum;

        static CharacteristicDialog newInstance(int num) {
            CharacteristicDialog f = new CharacteristicDialog();            
            Bundle args = new Bundle();
            args.putInt("num", num);
            f.setArguments(args);
            return f;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mNum = getArguments().getInt("num");
            setStyle(STYLE_NO_INPUT, 0);        
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.characteristic_dialog, container, false);
            v.setOnClickListener(new OnClickListener() {                
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

我在我的主片段中创建它,如下所示:

        DialogFragment newFragment = CharacteristicDialog.newInstance(v.getId());
        newFragment.setShowsDialog(true);
        newFragment.show(getFragmentManager(), …
Run Code Online (Sandbox Code Playgroud)

android modal-dialog android-fragments android-dialogfragment

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

Video.js youtube视频

我无法让youtube视频与video.js一起使用

我补充说:

<link href="http://vjs.zencdn.net/c/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/c/video.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后在身体:

<video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="360"
  data-setup='{"techOrder":["youtube","html5"],"ytcontrols":false}'>
<source src="http://www.youtube.com/watch?v=qWjzVHG9T1I" type='video/youtube' />
Run Code Online (Sandbox Code Playgroud)

但我有一个黑色的div(在最新的Chrome和FF测试).我错过了什么吗?

谢谢

youtube html5-video video.js

6
推荐指数
1
解决办法
2万
查看次数

C++ 编译错误枚举“没有命名类型”

以下代码:

foo.h

#include "bar.h"
class foo{ 
public:
   enum my_enum_type { ONE, TWO, THREE }; 
   foo(); 
   ~foo() {} 
};
Run Code Online (Sandbox Code Playgroud)

文件

foo::foo()
{
   int i = bar::MY_DEFINE;
}
Run Code Online (Sandbox Code Playgroud)

酒吧.h

#include "foo.h"
class bar{
public:
   static const int MY_DEFINE = 10;
   foo::my_enum_type var;
   bar() {};
   ~bar() {};
};
Run Code Online (Sandbox Code Playgroud)

使 g++ 编译器抱怨 my_enum_type “未命名类型”。为什么 ?所有标题都有多个包含定义(为清楚起见,此处未显示)。

谢谢

c++ enums types

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

C++在传递值和传递引用函数之间的分配有区别吗?

foo和bar之间有区别吗:

class A
{
  Object __o;

  void foo(Object& o)
  {
    __o = o;  
  }

  void bar(Object o)
  {
    __o = o;
  } 
} 
Run Code Online (Sandbox Code Playgroud)

据我了解,foo在调用对象o时不执行复制操作,并且对赋值执行一次复制操作.Bar在调用对象o时执行一次复制操作,而另一个用于赋值.所以我或多或少会说foo使用的内存比bar少2倍(如果o足够大).那是对的吗 ?

是否有可能编译器优化bar函数以仅对o执行一次复制操作?即使__o指向参数o的本地副本而不是创建新副本?

c++ reference variable-assignment

2
推荐指数
1
解决办法
284
查看次数