使用SQlite数据填充实现进度条

时间:2018-05-31 06:53:18

标签: android sqlite android-studio progress-bar

我试图在我的Android应用中查看一个进度条,该进度条跟随数据库填充一些数据,当它完成时,进度条应该查看" 100%&#34 ;或者只是数据加载完成。 我会在我的应用中使用this进度条。

虽然这是我的类,其中包含我从HTML网站获取数据并将其放入SQLite的所有算法。 您对如何使用它实现进度条有任何建议吗?

public class articoli extends AppCompatActivity {


String htmlresultart;
Integer DaDoveParto = 0;
Integer DoveMiFermo = 0;
Integer QuanteRighe = 0;
Integer QuantiCampi = 0;
String appCAMPOart = "";
String[] appBODYart = new String[9];
DataBaseHandler myDB;

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

    myDB = DataBaseHandler.getInstance(this);
    myDB.delete();
    getHTMLArticoli();

}

private void getHTMLArticoli(){

    Ion.with(getApplicationContext())
            .load("WEPPAGEIP")
            .asString()
            .setCallback(new FutureCallback<String>() {
                @SuppressLint("SetTextI18n")
                @Override
                public void onCompleted(Exception e, String result) {
                    htmlresultart = result;
                    htmlresultart = htmlresultart.replace("</td>", "\n");
                    getBodyArticoli();
                }
            });

}

  private void getBodyArticoli(){

    DaDoveParto = Integer.valueOf(String.valueOf(htmlresultart.indexOf("TBLCRP")));
    DoveMiFermo = Integer.valueOf(String.valueOf(htmlresultart.indexOf("</form>")));

    if(DaDoveParto == 0){
        Toast.makeText(this,"NESSUN DATO TROVATO",Toast.LENGTH_SHORT).show();
    }else
    {
        Integer i;
        Integer j;
        Integer CONTACAMPO = 0;
        for( i = DaDoveParto ; i <= DoveMiFermo ; i++){
            if( htmlresultart.substring(i, i + 4).equals("<td>")){
                i += 4;
                for (j = i; j <= DoveMiFermo ; j++){
                    if(htmlresultart.substring(j, j + 1).equals("\n")){

                        appBODYart[CONTACAMPO] = htmlresultart.substring(i, i + (j - i));

                        if(appBODYart[CONTACAMPO].equals("(null)")){
                            appBODYart[CONTACAMPO] = "";
                        }
                        CONTACAMPO += 1;

                        if(CONTACAMPO.equals(QuantiCampi)){
                            CONTACAMPO = 0;
                            myDB.insertArtServer(appBODYart[0], appBODYart[1], appBODYart[2], appBODYart[3], appBODYart[4], appBODYart[5],
                                    appBODYart[6], appBODYart[7], appBODYart[8]);
                        }
                        break;
                    }
                }
            }

        }

    }

}

}

1 个答案:

答案 0 :(得分:0)

实际上,您需要一个ProgressBar来显示下载数据的进度,而不是将主题插入数据库。

正如我所知,您正在使用ion库来下载数据。离子有能力做到这一点。看here(搜索进度)

但是,如果要使用ProgressBar将数据插入数据库,则必须使用回调并将百分比放入数据库处理程序中并在活动中实现。