Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android API应该返回JSON格式的数据,但不在布局中显示_Android_Api_Runtime Error_Retrofit - Fatal编程技术网

Android API应该返回JSON格式的数据,但不在布局中显示

Android API应该返回JSON格式的数据,但不在布局中显示,android,api,runtime-error,retrofit,Android,Api,Runtime Error,Retrofit,我试图将json响应传递给适配器类,我从RESTAPI获得响应,但在改型处理程序类将json响应转换为对象数组后,json对象数组仍然没有传递给适配器类。我没有收到任何日志错误或警告,但当我尝试在我的android应用程序中使用此活动时,我没有收到任何结果 public class HistoryActivity extends AppBaseActivity { @BindView(R.id.history_header) RelativeLayout history_hea

我试图将json响应传递给适配器类,我从RESTAPI获得响应,但在改型处理程序类将json响应转换为对象数组后,json对象数组仍然没有传递给适配器类。我没有收到任何日志错误或警告,但当我尝试在我的android应用程序中使用此活动时,我没有收到任何结果

public class HistoryActivity extends AppBaseActivity {

    @BindView(R.id.history_header)
    RelativeLayout history_header;

    @BindView(R.id.history_list)
    ListView history_list;

    @BindView(R.id.no_history_view)
    LinearLayout no_history_view;

    @BindView(R.id.hdr_back)
    TextView hdr_back;

    private String address;
    private String category;
    private String distance;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_history);

        unbinder= ButterKnife.bind(this);
        backBtnSet();

        updateHeader();
        Intent intent=getIntent();

        if(intent!=null && intent.hasExtra("mid")){
            String mId=intent.getStringExtra("mid");

            address=intent.getStringExtra("address");
            category=intent.getStringExtra("category");
            distance=intent.getStringExtra("distance");

            fetchHistory(mId);
        }else {
            activityFinish();
        }
    }

    private void backBtnSet() {

        final int height= (int) getResources().getDimension(R.dimen.dp_24);
        hdr_back.getViewTreeObserver()
                .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        Drawable img = getBaseContext().getResources().getDrawable(
                                R.drawable.ic_backarrow);
                        img.setBounds(0, 0, height,
                                height);
                        hdr_back.setCompoundDrawables(img, null, null, null);
                        hdr_back.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                    }
                });
    }

    private void updateHeader() {
        TextView hView= history_header.findViewById(R.id.hdr_title);
        hView.setText(getString(R.string.history_small));
    }

    private void fetchHistory(String mId) {
        JsonObject jObject=ParamConvertor.getCustomerHistory(userInfo.getId(),
                userInfo.getAccessKey(),mId);

        Call<ArrayList<HistoryCustomer>> call=apiService.getCustomerHistory(jObject);
        call.enqueue(new RetrofitHandlerFull<ArrayList<HistoryCustomer>>(this,
                networkHandler,1));
        AppLogger.printPostBodyCall(call);
    }
//Problem persists from here  
    private INetworkHandler<ArrayList<HistoryCustomer>> networkHandler
            = new INetworkHandler<ArrayList<HistoryCustomer>>() {

        @Override
        public void onResponse(ArrayList<HistoryCustomer> data, String msg, int num) {
            if(data!=null && !data.isEmpty()){
                updateList(data);
                dataPresent(true);

            }else{
                dataPresent(false);
            }
        }

        @Override
        public void onFailure(String msg, int error) {
            dataPresent(false);
        }
    };

    private void updateList(ArrayList<HistoryCustomer> data){
        HistoryAdapter adapter=new HistoryAdapter(this,data,
                address,category);

        history_list.setAdapter(adapter);
    }


    private void dataPresent(boolean isPresent){
        if(isPresent){
            no_history_view.setVisibility(View.GONE);
            history_list.setVisibility(View.VISIBLE);
        }else{
            no_history_view.setVisibility(View.VISIBLE);
            history_list.setVisibility(View.GONE);
        }
    }


    @OnClick(R.id.hdr_back)
    void onCLicks(View view){

        switch (view.getId()){

            case R.id.hdr_back:
                activityFinish();
                break;
        }
    }
}
公共类HistoryActivity扩展了AppBaseActivity{
@BindView(R.id.history\u标题)
相对显示历史_标题;
@BindView(R.id.history\U列表)
ListView历史列表;
@BindView(R.id.no\u history\u视图)
线性布局无历史视图;
@BindView(R.id.hdr\u-back)
TextView hdr_返回;
私有字符串地址;
私有字符串类别;
私有字符串距离;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
解开(这个);
backBtnSet();
updateHeader();
Intent=getIntent();
if(intent!=null&&intent.hasExtra(“mid”)){
String mId=intent.getStringExtra(“mId”);
地址=intent.getStringExtra(“地址”);
类别=意图。getStringExtra(“类别”);
距离=意图。getStringExtra(“距离”);
历史(中);
}否则{
activityFinish();
}
}
私有void backBtnSet(){
最终整数高度=(int)getResources().getDimension(R.dimen.dp_24);
hdr_back.getViewTreeObserver()
.addOnGlobalLayoutListener(新的ViewTreeObserver.OnGlobalLayoutListener(){
@凌驾
公共图书馆{
可绘制img=getBaseContext().getResources().getDrawable(
R.可拉拔ic_后箭头);
img.立根(0,0,高度,
高度);
hdr_back.setCompoundDrawables(img,null,null,null);
hdr_back.getViewTreeObserver().removeOnGlobalLayoutListener(此);
}
});
}
私有void updateHeader(){
TextView hView=history\u header.findviewbyd(R.id.hdr\u title);
hView.setText(getString(R.string.history_-small));
}
私有void fetchHistory(字符串mId){
JsonObject jObject=ParamConvertor.getCustomerHistory(userInfo.getId(),
userInfo.getAccessKey(),mId);
Call Call=apiService.getCustomerHistory(jObject);
call.enqueue(新的)HandlerFull(此,
networkHandler,1);
AppLogger.printPostBodyCall(call);
}
//从这里开始,问题依然存在
专用INetworkHandler networkHandler
=新的inetworkshandler(){
@凌驾
公共void onResponse(ArrayList数据、字符串msg、int num){
if(data!=null&&!data.isEmpty()){
更新列表(数据);
数据存在(真);
}否则{
数据存在(假);
}
}
@凌驾
public void onFailure(字符串消息,int错误){
数据存在(假);
}
};
私有void updateList(ArrayList数据){
HistoryAdapter=新的HistoryAdapter(此,数据,
地址、类别);
历史记录\u列表。设置适配器(适配器);
}
私有void dataPresent(布尔值isPresent){
如果(显示){
无历史视图。设置可见性(view.GONE);
历史_list.setVisibility(View.VISIBLE);
}否则{
no_history_view.setVisibility(view.VISIBLE);
历史_list.setVisibility(View.GONE);
}
}
@OnClick(R.id.hdr\u back)
void onclick(视图){
开关(view.getId()){
案例R.id.hdr\U背面:
activityFinish();
打破
}
}
}

根据您的代码,我觉得没问题。您可以检查您正在调用的端点吗?它可能返回null或空对象