Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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
Java android(Rest Api)中每行都有接受和拒绝请求按钮的列表视图_Java_Android_Json_Android Listview_Android Json - Fatal编程技术网

Java android(Rest Api)中每行都有接受和拒绝请求按钮的列表视图

Java android(Rest Api)中每行都有接受和拒绝请求按钮的列表视图,java,android,json,android-listview,android-json,Java,Android,Json,Android Listview,Android Json,我正在开发一个基于RESTAPI远程数据的Android应用程序,其中我制作了一个带有两个按钮的ListView,“接受”和“拒绝” 当用户选择“接受”按钮时,JSON属性的某些部分必须更改为true,如果用户选择“拒绝”按钮,JSON属性的某些部分必须更改为false和@POST它 我怎么做 到目前为止我所做的: 我的主要活动: public class ViewRefundRequest extends AppCompatActivity{ ProgressBar progress

我正在开发一个基于RESTAPI远程数据的Android应用程序,其中我制作了一个带有两个按钮的
ListView
,“接受”和“拒绝”

当用户选择“接受”按钮时,
JSON
属性的某些部分必须更改为
true
,如果用户选择“拒绝”按钮,
JSON
属性的某些部分必须更改为
false
@POST

我怎么做

到目前为止我所做的:

我的主要活动:

public class ViewRefundRequest extends AppCompatActivity{

    ProgressBar progressBarVRR;
    private ListView viewRefundRequestListView;
    RelativeLayout vrrMainLayout;

    ApiService serviceVRR;
    TokenManager tokenManagerVrr;

    Call<List<ViewRefundRequestModel>> callViewRefundRequestData;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_refund_request);

        tokenManagerVrr = TokenManager.getInstance(getSharedPreferences("prefs", MODE_PRIVATE));
        serviceVRR = RetrofitBuilder.createServiceWithAuth(ApiService.class, tokenManagerVrr);

        progressBarVRR = (ProgressBar) findViewById(R.id.viewRefundRequestProgressBar);
        viewRefundRequestListView = (ListView) findViewById(R.id.viewRefundRequestListView);

        //Rest Api call
        allViewRefundRequestData();
    }

    private void updateUI(List<ViewRefundRequestModel> VrrModel) {

        AdminViewRefundRequestAdapter adapterVrr = new AdminViewRefundRequestAdapter(VrrModel, this);
        viewRefundRequestListView.setAdapter(adapterVrr);

    }

    private void allViewRefundRequestData() {
        progressBarVRR.setVisibility(View.VISIBLE);
        callViewRefundRequestData = serviceVRR.getAllViewRefundRequest();
        callViewRefundRequestData.enqueue(new Callback<List<ViewRefundRequestModel>>() {
            @Override
            public void onResponse(@NotNull Call<List<ViewRefundRequestModel>> call, @NotNull Response<List<ViewRefundRequestModel>> response) {
                progressBarVRR.setVisibility(View.GONE);

                if (response.isSuccessful() && response.body() != null){

                    updateUI(response.body());

                }else {

                    if (response.code() == 401) {
                        startActivity(new Intent(ViewRefundRequest.this, LoginActivity.class));
                        finish();
                        tokenManagerVrr.deleteToken();
                        Toast.makeText(ViewRefundRequest.this, "User session expired, Login again", Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(@NotNull Call<List<ViewRefundRequestModel>> call, @NotNull Throwable t) {
                progressBarVRR.setVisibility(View.GONE);

                Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Network Status: " + t.getMessage(), Snackbar.LENGTH_LONG);
                View snackbarView = snackbar.getView();
                snackbarView.setBackgroundColor(Color.parseColor("#f5003d"));
                TextView tv = (TextView) snackbarView.findViewById(R.id.snackbar_text);
                tv.setTextColor(Color.WHITE);
                snackbar.show();
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        if (callViewRefundRequestData != null) {
            callViewRefundRequestData.cancel();
            callViewRefundRequestData = null;
        }
    }

}
public class viewReturnRequest扩展了AppCompative活动{
ProgressBar progressBarVRR;
私有列表视图;请求列表视图;
相对论;
APIServiceVRR;
TokenManager tokenmanagervr;
调用CallViewRequestData;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u view\u Return\u request);
tokenManagerVrr=TokenManager.getInstance(getSharedReferences(“prefs”,MODE_PRIVATE));
serviceVRR=RefundationBuilder.createServiceWithAuth(ApiService.class,tokenManagerVrr);
progressBarVRR=(ProgressBar)findViewById(R.id.ViewRequestProgressBar);
ViewReturnRequestListView=(ListView)findViewById(R.id.ViewReturnRequestListView);
//RESTAPI调用
AllViewReturnRequestData();
}
私有无效更新(列表VrrModel){
AdminViewReturnRequestAdapter adapterVrr=新的AdminViewReturnRequestAdapter(VrrModel,this);
ViewRequestListView.setAdapter(adapterVrr);
}
私有void allviewReturnRequestData(){
progressBarVRR.setVisibility(视图可见);
CallViewReturnRequestData=serviceVRR.GetAllViewReturnRequest();
CallViewReturnRequestData.enqueue(新回调(){
@凌驾
公共void onResponse(@NotNull调用,@NotNull响应){
progressBarVRR.setVisibility(视图已消失);
if(response.issusccessful()&&response.body()!=null){
updateUI(response.body());
}否则{
if(response.code()==401){
startActivity(新意图(viewRequest.this、LoginActivity.class));
完成();
tokenManagerVrr.deleteToken();
Toast.makeText(viewRegureRequest.this,“用户会话已过期,再次登录”,Toast.LENGTH_LONG.show();
}
}
}
@凌驾
public void onFailure(@NotNull Call Call,@NotNull Throwable t){
progressBarVRR.setVisibility(视图已消失);
Snackbar Snackbar=Snackbar.make(findviewbyd(android.R.id.content),“网络状态:”+t.getMessage(),Snackbar.LENGTH\u LONG);
视图snackbar视图=snackbar.getView();
snackbarView.setBackgroundColor(Color.parseColor(“#f5003d”);
TextView tv=(TextView)snackbar view.findviewbyd(R.id.snackbar\u text);
电视.彩色(彩色.白色);
snackbar.show();
}
});
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
if(callviewReturnRequestData!=null){
CallViewReturnRequestData.cancel();
CallViewReturnRequestData=null;
}
}
}
我的适配器类:

public class AdminViewRefundRequestAdapter extends BaseAdapter {

private List<ViewRefundRequestModel> viewRefundRequestModels;
    private Context context;

    public AdminViewRefundRequestAdapter(List<ViewRefundRequestModel> viewRefundRequestModels, Context context) {
        this.viewRefundRequestModels = viewRefundRequestModels;
        this.context = context;
    }

    @Override
    public int getCount() {
        return viewRefundRequestModels.size();
    }

    @Override
    public Object getItem(int position) {      

        return viewRefundRequestModels.get(position);
    }

    @Override
    public long getItemId(int pos) {
        return pos;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewGroup) {

        if (view == null){
            view = LayoutInflater.from(context).inflate(R.layout.model_view_refund_reques, viewGroup, false);
        }

        TextView patient_name = view.findViewById(R.id.patient_name_VRR_Model);
        TextView patient_id = view.findViewById(R.id.patient_id_VRR_Model);
        TextView item_name = view.findViewById(R.id.item_name_VRR_Model);
        TextView category = view.findViewById(R.id.category_VRR_Model);
        TextView quantity = view.findViewById(R.id.quantity_VRR_Model);
        TextView amount = view.findViewById(R.id.amount_VRR_Model);
        TextView discount = view.findViewById(R.id.discount_VRR_Model);
        TextView amount_after_discount = view.findViewById(R.id.amount_after_discount_VRR_Model);
        TextView refund_note = view.findViewById(R.id.refund_note_VRR_Model);

        Button make_decisionBtn_Yes = view.findViewById(R.id.make_decisionBtn01_VRR_Model);
        Button make_decisionBtn_No = view.findViewById(R.id.make_decisionBtn02_VRR_Model);

        make_decisionBtn_Yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //accept the request and make the certain portion of the Json Object property to true
            }
        });

        make_decisionBtn_No.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //accept the request and make the certain portion of the Json Object property to false
            }
        });

        final ViewRefundRequestModel thisModelResponse = viewRefundRequestModels.get(position);

        Patient patient = thisModelResponse.getPatient();
        String patientName= patient.getFirstName()+" "+patient.getLastName();

        Item item =thisModelResponse.getItem();
        String itemName= item.getName();

        ItemCategory itemCategory = item.getItemCategory();
        String itemCategoryName = itemCategory.getName();

        patient_name.setText(patientName);
        patient_id.setText(Integer.toString(thisModelResponse.getPatientID()));
        item_name.setText(itemName);
        category.setText(itemCategoryName);
        quantity.setText(Integer.toString(thisModelResponse.getServiceQuantity()));
        amount.setText(Double.toString(thisModelResponse.getServiceActualPrice()));
        discount.setText(Double.toString(thisModelResponse.getDiscount()));
        amount_after_discount.setText(Double.toString(thisModelResponse.getServiceListPrice()));
        refund_note.setText(thisModelResponse.getRefundNote());

        return view;
    }
}
公共类AdminViewRequirestAdapter扩展了BaseAdapter{
私有列表模型;
私人语境;
公共AdminViewReturnRequestAdapter(列表ViewReturnRequestModels,上下文){
this.viewReturnRequestModels=viewReturnRequestModels;
this.context=上下文;
}
@凌驾
public int getCount(){
返回viewRequestModels.size();
}
@凌驾
公共对象getItem(int位置){
返回ViewRequestModels.get(位置);
}
@凌驾
公共长getItemId(int-pos){
返回pos;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组视图组){
如果(视图==null){
视图=LayoutFlater.from(context).充气(R.layout.model\u view\u return\u requues,viewGroup,false);
}
TextView patient\u name=view.findViewById(R.id.patient\u name\u vru Model);
TextView patient\u id=view.findViewById(R.id.patient\u id\u vru模型);
TextView item\u name=view.findViewById(R.id.item\u name\u VRR\u Model);
TextView category=view.findviewbyd(R.id.category\u vr\u Model);
TextView数量=view.findViewById(R.id.quantity\u VRR\u Model);
TextView amount=view.findviewbyd(R.id.amount\u vr\u Model);
TextView折扣=view.findviewbyd(R.id.discount\u vr\u Model);
text查看折扣后金额=view.findViewById(R.id.amount折扣后金额\u\u VRR\u模型);
TextView退款注释=view.findviewbyd(R.id.return\u note\u VRR\u模型);
按钮make_decisionBtn_Yes=view.findViewById(R.id.make_decisionBtn01_VRU模型);
按钮make_decisionBtn_No=view.findViewById(R.id.make_decisionBtn02_VRU模型);
make_decisionBtn_Yes.setOnClickListener(new View.OnClickListener()){
@凌驾
公共void onClick(视图){
//接受请求并将Json对象属性的特定部分设置为true
}
});
make_decisionBtn_No.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//接受请求并将Json对象属性的某些部分设置为false
}
});
最终ViewReturnRequestModel thisModelResponse=ViewReturnRequestModels.get(位置);
患者=此模型响应