如何仅在有时显示Android进度条

时间:2013-01-03 15:05:20

标签: android android-progressbar

我想仅在新MainActivity(detail)时显示进度条。 MainActivity(detail)用于向用户发送邮件。我只需要点击按钮,就会显示进度条并开始。然后,当发送邮件时,进度条会隐藏或结束。

到目前为止,这是我的代码:

OnClickListener listener=new OnClickListener()
    {   
        @Override
        public void onClick(View v)
        {
        pb=(ProgressBar)findViewById(R.id.progressBar1);
        pb.setVisibility(View.VISIBLE);

        if(isNetworkAvailable())
        {
        // TODO Auto-generated method stub
            SharedPreferences pref=getSharedPreferences("Pref", MODE_PRIVATE);
            String str=pref.getString("un1", "");
            String str1=pref.getString("pa1", "");

            SQLiteDatabase db=context.openOrCreateDatabase("IPCA", MODE_PRIVATE,null);
            Databasesignup dbs=new Databasesignup(context,"IPCA", null,1);
            dbs.onCreate(db);

            Cursor cursor=dbs.view(db,str,str1);

            ArrayList<String> al=new ArrayList<String>();
            while(cursor.moveToNext())
            {
                al.add(cursor.getString(0));
                al.add(cursor.getString(1));
                al.add(cursor.getString(5));
            }

            String string=al.get(0);
            String string1=al.get(1);
            String string2=al.get(2);
            String k=iv.getTag().toString();

            dbs.insert1(db,string,str,string2,k);

            final String detail ="\nName: "+string+"\nEmail: "+string1+"\nMobile: "+string2+"\nInterest: "+k;
            new MainActivity(detail);

            cursor.close();
            db.close();

            Toast.makeText(getApplicationContext(),"You will be contacted soon", Toast.LENGTH_LONG).show();
        }`

2 个答案:

答案 0 :(得分:2)

由于您正在访问网络,因此您需要将整个操作移至后台。这是使用AsyncTask最简单的方法。然后,您可以在ProgressBar中显示onPreExecute()并将其隐藏在onPostExecute()中。

答案 1 :(得分:0)

通过更改ProgressBar的可见性隐藏ProgressBar。

ProgressBar pBar = (ProgressBar)findViewById(R.id.your_progress_bar);
// To hide the Progress Bar set visibility to GONE.
pBar.setVisibility(View.GONE);
// To show the Progress Bar again set visibility to VISIBLE
pBar.setVisibility(View.VISIBLE);