Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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 如何在向数据库插入数据时添加带有百分比的进度条?_Android_Android Asynctask_Android Progressbar - Fatal编程技术网

Android 如何在向数据库插入数据时添加带有百分比的进度条?

Android 如何在向数据库插入数据时添加带有百分比的进度条?,android,android-asynctask,android-progressbar,Android,Android Asynctask,Android Progressbar,这是我将数据插入数据库的代码。我使用了Asynctask和HTTPUrlConnection。我想实现0%-100%的进度对话。有什么办法吗?我需要它,因为我还有另一个将在数据库中插入图像和文件的活动。所以我真的需要为此显示一个进度条 private void registerDeveloper(String acctID, String devName, String devEmail, String devWebsite, String devLogo, String devStatus)

这是我将数据插入数据库的代码。我使用了Asynctask和HTTPUrlConnection。我想实现0%-100%的进度对话。有什么办法吗?我需要它,因为我还有另一个将在数据库中插入图像和文件的活动。所以我真的需要为此显示一个进度条

private void registerDeveloper(String acctID, String devName, String devEmail, String devWebsite, String devLogo, String devStatus) {
    class RegisterUser extends AsyncTask<Object, Void, String> {

        RequestHandler ruc = new RequestHandler();
        ProgressDialog loading;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
         //   loading = ProgressDialog.show(getActivity(), "Please Wait", null, true, true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            FragmentManager fm = getSupportFragmentManager();
            df_SuccessDevRegistration dialogFragment = new df_SuccessDevRegistration();
            dialogFragment.show(fm, "Account not yet verified.");
        }

        @Override
        protected String doInBackground(Object... params) {

            String uploadImage = getStringImage(bitmap);

            HashMap<String, Object> data = new HashMap<>();
            data.put("acctID", params[0]);
            data.put("devName", params[1]);
            data.put("devEmail", params[2]);
            data.put("devWebsite",params[3] );
            data.put("devLogo", uploadImage);
            data.put("devStatus", params[5]);

            String REGISTER_URL = DataClass.localAddress + "android_php/developer_register.php";
            String result = ruc.sendPostRequest(REGISTER_URL, data);
            return result;

        }


    }

    RegisterUser ru = new RegisterUser();
    ru.execute(acctID, devName, devEmail, devWebsite, devLogo, devStatus);
}
private void registerDeveloper(字符串acctID、字符串devName、字符串devmail、字符串devWebsite、字符串devLogo、字符串devStatus){
类注册器扩展异步任务{
RequestHandler ruc=新的RequestHandler();
对话加载;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//loading=ProgressDialog.show(getActivity(),“请稍候”,null,true,true);
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
FragmentManager fm=getSupportFragmentManager();
df_SuccessDevRegistration dialogFragment=新建df_SuccessDevRegistration();
dialogFragment.show(fm,“帐户尚未验证”);
}
@凌驾
受保护的字符串doInBackground(对象…参数){
字符串uploadImage=getStringImage(位图);
HashMap数据=新的HashMap();
data.put(“acctID”,参数[0]);
data.put(“devName”,参数[1]);
data.put(“devEmail”,参数[2]);
数据。put(“devWebsite”,参数[3]);
data.put(“devLogo”,上传图像);
data.put(“devStatus”,参数[5]);
字符串REGISTER\u URL=DataClass.localAddress+“android\u php/developer\u REGISTER.php”;
字符串结果=ruc.sendPostRequest(寄存器URL,数据);
返回结果;
}
}
RegisterUser ru=新的RegisterUser();
执行(acctID、devName、devEmail、devWebsite、devLogo、devStatus);
}
然后我的PHP代码:

<?php
        require_once('dbconnect.php');

        if($_SERVER['REQUEST_METHOD']=='POST'){

         $acctID = $_POST['acctID'];
         $devName = $_POST['devName'];
         $devEmail = $_POST['devEmail'];
         $devWebsite = $_POST['devWebsite'];
         $devLogo = $_POST['devLogo'];
         $devStatus = $_POST['devStatus'];
         $id = 0;
         $fileName = $devName . '_' . $acctID. '.jpg';
         $devLogoLink = "android_php/dev_logo/$fileName";
         $devLogoLink2 = "../android_php/dev_logo/$fileName";



         $check = mysqli_fetch_array(mysqli_query($con,$sql));
         $sql = "INSERT INTO tbldeveloper (acctID, devName,devEmail,devWebsite,devLogo,devStatus)VALUES('$acctID','$devName','$devEmail','$devWebsite','$devLogoLink','$devStatus')";

        if(mysqli_query($con,$sql))
        {
         file_put_contents($devLogoLink2,base64_decode($devLogo));
         }


         mysqli_close($con);

        }else{
        echo 'error';
        }

在此类任务中,您应该决定静态进度值,并将其设置为任务完成后的进度。例如,如果你有5张图片要上传,第一张图片上传时设置20%,第二张图片上传时设置35%,第三张图片上传时设置58%,最后第五张图片上传时设置100%,这样的随机设置会给用户一种工作进行中的感觉。即使不只是上传之后,你也可以在每个步骤之后更新进度。例如,在将图像转换为bytearray之后,在准备请求字符串的过程中,我应该通过php回显进度值吗?插入图像后的示例。。。然后它将回音20。类似的东西?进度条在Android端,所以你只需要在Android上实现。在这种任务中,你应该决定静态进度值,并在任务完成后将其设置为Progress。例如,如果你有5张图片要上传,第一张图片上传时设置20%,第二张图片上传时设置35%,第三张图片上传时设置58%,最后第五张图片上传时设置100%,这样的随机设置会给用户一种工作进行中的感觉。即使不只是上传之后,你也可以在每个步骤之后更新进度。例如,在将图像转换为bytearray之后,在准备请求字符串的过程中,我应该通过php回显进度值吗?插入图像后的示例。。。然后它将回音20。类似的东西?进度条在Android端,所以你只需要在Android上实现。