Hi I am writing application to get all information from a url. Parser is 
working well. but it takes some time about 2 sec to decode all.Till it 
decode and enter into listView Page/View is not shown. 
What i want is show the page loading icon(progress bar) before call url, 
and then hide it after loaded from url.


package packege.cse.updates;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import packege.lottery.result.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.AdapterView;
import android.widget.Toast;

public class cseWatch extends Activity  {
    TextView txt1 ;
    Button btnBack;
    ListView listView1;
    /** Called when the activity is first created. */
    @Override
    
    public void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.searchresult);
        
        Button btnBack=(Button) findViewById(R.id.btn_bck);
        btnBack.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent MyIntent1 = new 
Intent(v.getContext(),cseWatchMain.class);
                startActivity(MyIntent1);
            }
        });
   
        ArrayList<SearchResults> searchResults = GetSearchResults();
       
        //after loaded result hide progress bar
        ProgressBar pb = (ProgressBar) findViewById(R.id.progressBar1);
        pb.setVisibility(View.INVISIBLE);
        
        final ListView lv = (ListView) findViewById(R.id.listView1);
        lv.setAdapter(new MyCustomBaseAdapter(cseWatch.this, 
searchResults));
 
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, 
long id) {
                Object o = lv.getItemAtPosition(position);
                SearchResults fullObject = (SearchResults)o;
                Toast.makeText(cseWatch.this, "You have chosen: " + " " + 
fullObject.getName(), Toast.LENGTH_LONG).show();
            }
        });
            

    }//end of onCreate


private ArrayList<SearchResults> GetSearchResults(){
    ArrayList<SearchResults> results = new ArrayList<SearchResults>();

    SearchResults sr;
    InputStream in;
    try{
        txt1 = (TextView) findViewById(R.id.txtDisplay);
        txt1.setText("Sending request...");
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("http://myurl?reportType=CSV";);
        HttpResponse response = httpclient.execute(httpget);
        in = response.getEntity().getContent();
        
        txt1.setText("parsing CSV...");
  
        
        BufferedReader reader = new BufferedReader(new 
InputStreamReader(in));
            try {
                String line;
                reader.readLine(); //IGNORE FIRST LINE
                 
                while ((line = reader.readLine()) != null) {
                     String[] RowData = line.split(",");
                     sr = new SearchResults();
                     
                     String precent = 
String.format("%.2g%n",Double.parseDouble(RowData[12])).trim();
                     
                     double chng=Double.parseDouble(RowData[11]);
                     String c;
                     if(chng > 0){
                         sr.setLine2Color(Color.GREEN);
                         c="▲";
                     }else if(chng < 0){
                         sr.setLine2Color(Color.rgb(255, 0, 14));
                         c="▼";
                     }else{
                         sr.setLine2Color(Color.rgb(2, 159, 223));
                         c="-";
                     }
                     
                     sr.setName(c+RowData[2]+"-"+RowData[1]);
                    
                     
                     DecimalFormat fmt = new 
DecimalFormat("###,###,###,###.##");
                     String price = 
fmt.format(Double.parseDouble(RowData[6])).trim();
                     String tradevol = 
fmt.format(Double.parseDouble(RowData[8])).trim();
                    
                     sr.setLine1("PRICE: Rs."+price+" TRADE VOL:"+tradevol);
                     sr.setLine2("CHANGE:"+c+RowData[11]+" ("+precent+"%)");
                     results.add(sr);
                     txt1.setText("Loaded...");
                    // do something with "data" and "value"
                }
            }
            catch (IOException ex) {
                Log.i("Error:IO",ex.getMessage());
            }
            finally {
                try {
                    in.close();
                }
                catch (IOException e) {
                    Log.i("Error:Close",e.getMessage());
                }
            }
    }catch(Exception e){
        Log.i("Error:",e.getMessage());
        new AlertDialog.Builder(cseWatch.this).setTitle("Watch 
out!").setMessage(e.getMessage()).setNeutralButton("Close", null).show();  
    }
    
    return results;
   }

}  

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to