首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用objadapter.removeItem(po);只有当列表被删除时

调用objadapter.removeItem(po);只有当列表被删除时
EN

Stack Overflow用户
提问于 2016-01-26 16:42:16
回答 1查看 26关注 0票数 0

我不知道如何做到这一点。

我在活动A中有一个listView。当检测到长按压时,它就会变成checkMaxID(ID,iD);。如果iDmaximum,它将显示success、删除列表并最终刷新列表。否则,它将显示list cannot be deleted,不会通过objadapter.removeItem(po);

现在,我想实现的是,只有当列表被删除时才调用objadapter.removeItem(po);。如果不是, 不会调用objadapter.removeItem(po);

代码语言:javascript
运行
复制
    listViewUpdate.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {

                    iD = details1.get(po).getID();
                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    builder.setTitle("Delete");
                    builder.setMessage("Are you sure you want to delete?");
                    builder.setIcon(android.R.drawable.ic_dialog_alert);
                    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int ii) {
                            checkMaxID(ID,iD);
                            objadapter.removeItem(po); // only call when list get deleted
                            RetrieveTotalHours(ID);

                        }
                    });

                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()

                            {
                                public void onClick(DialogInterface dialog, int ii) {
                                    dialog.dismiss();
                                }
                            }

                    );
                    builder.show();
                    return true;
                }
            });


   public void checkMaxID(final int foreignKey,final String iD)
    {
        class check extends AsyncTask<Void,Void,String>{
            // ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                // loading = ProgressDialog.show(Edit_Staff.this,"Updating...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                // loading.dismiss();
                Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show();
            }

            @Override
            protected String doInBackground(Void... params) {
                HashMap<String,String> hashMap = new HashMap<>();
                hashMap.put(Configs.KEY_ID, iD);
                hashMap.put(Configs.KEY_TWD, String.valueOf(foreignKey));
                RequestHandler rh = new RequestHandler();
                String s = rh.sendPostRequest(Configs.URL_CHECK_ID, hashMap);
                return s;
            }
        }

      check ue = new check();
        ue.execute();
        }

checkID.php

代码语言:javascript
运行
复制
<?php
if(isset($_POST['id'], $_POST['twd'])){
    /*Importing our db connection script*/
    require_once('dbConnect.php');
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    $id = mysqli_real_escape_string($con, $_POST['id']);
    $twd = mysqli_real_escape_string($con, $_POST['twd']);

    $sql ="SELECT MAX(id) as MaxId FROM work_details WHERE twd = '$twd'";

    if ($result = mysqli_query($con, $sql)) {
        /* fetch associative array */
        if ($row = mysqli_fetch_row($result)) {
            if($row[0] === $id){
                $sql ="DELETE FROM work_details WHERE id='$id';";
                if ($result = mysqli_query($con, $sql)) {
                    echo 'success';
                }else{
                    echo 'failed';
                }
            }
            else{
            echo 'list cannot be deleted ';
        }

        }

        /* free result set */

    }
    /* close connection */
    mysqli_close($con);
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 16:48:33

您需要在PHP脚本中添加一些json:

代码语言:javascript
运行
复制
<?php
$json = array();
if(isset($_POST['id'], $_POST['twd'])){
    /*Importing our db connection script*/
    require_once('dbConnect.php');
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    $id = mysqli_real_escape_string($con, $_POST['id']);
    $twd = mysqli_real_escape_string($con, $_POST['twd']);

    $sql ="SELECT MAX(id) as MaxId FROM work_details WHERE twd = '$twd'";

    if ($result = mysqli_query($con, $sql)) {
        /* fetch associative array */
        if ($row = mysqli_fetch_row($result)) {
            if($row[0] === $id){
                $sql ="DELETE FROM work_details WHERE id='$id';";
                if ($result = mysqli_query($con, $sql)) {
                    echo 'success';
                    $json['success'] = true;
                    $json['message'] = 'delete is successful';
                }else{
                    $json['success'] = false;
                    $json['message'] = 'list cannot be deleted';
                }
            }else{
                $json['success'] = false;
                $json['message'] = '($row[0] !== $id)';         
            }
        } else{
            $json['success'] = false;
            $json['message'] = 'select is unsuccessful';            
        }
    /* close connection */
    mysqli_close($con);
    }
}
?>

在java中解析它:

代码语言:javascript
运行
复制
@Override
protected void onPostExecute(String s) {
    super.onPostExecute(s);
    Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show();
    try{
        JSONObject json = new JSONObject(s);
        if(json.getBoolean("success")){
            objadapter.removeItem(po)
        }else{
            Toast.makeText(getActivity(), 
            json.getString("message"), 
            Toast.LENGTH_LONG).show();
        }       
    }catch(JSONException ex){

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35019101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档