prathik
prathik

Reputation: 129

loading data from the list when android app open

Hi I just created app for loading data from the website once the button is clicked in android.I want to change the app for loading data when the application open.How will I do it?

Here is my code..

public class PrimaryActivity extends Activity {
private static final String URL = "http://livechennai.com/powershutdown_news_chennai.asp";
ProgressDialog mProgressDialog;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_primary);

    Button btnFetchData = (Button) findViewById(R.id.btnData);
    btnFetchData.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new FetchWebsiteData().execute();
        }
    });

}

private class FetchWebsiteData extends AsyncTask<Void, Void, String[]> {
    String websiteTitle, websiteDescription,websiteDescription1,websiteDescription2,websiteDescription3,listValue,listValue1;
    ProgressDialog progress;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        //some code here
    }

    @Override
    protected String[] doInBackground(Void... params) {
        ArrayList<String> hrefs=new ArrayList<String>();
        try {
            // parsing here

            }

        } catch (IOException e) {
            e.printStackTrace();
        }
        //get the array list values
        for(String s:hrefs)
        {
            //website data
        }
        //parsing first URL


        } catch (IOException e) {
            e.printStackTrace();
        }
        //parsing second URL



        } catch (IOException e) {
            e.printStackTrace();
        }

        try{
            List<String> listString = new ArrayList<String>(Arrays.asList(resultArray));
            listString.addAll(Arrays.asList(resultArray1));
            String [] outResult= new String[listString.size()];
            int i=0;
            for(String str: listString){
                outResult[i]=str;
                i++;
            }
            return outResult;

        } catch (Exception e) {
            e.printStackTrace();
        }


        return null;
    }



    @Override
    protected void onPostExecute(String[] result) {

        ListView list=(ListView)findViewById(R.id.listShow);
        ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_list_item_1,result);
        list.setAdapter(arrayAdapter);
        mProgressDialog.dismiss();
    }
}

}

How to load the list view when we open the app? help me to get the exact answer?

Upvotes: 0

Views: 95

Answers (3)

TechnoBlahble
TechnoBlahble

Reputation: 633

Put the method which does the fetching i.e. new FetchWebsiteData().execute(); outside of the code of button click and in the activity.onResume() method.

onResume is called everytime an app comes to foreground, if you put it oncreate(), the method will be called only when the activity is created.

Upvotes: 0

Finn K
Finn K

Reputation: 620

Call FetchWebsiteData().execute() from one of the activity lifecycle methods such as onStart, onCreate, or onResume - please refer to docs to determine which fits in your case.

Upvotes: 0

Bharath Mg
Bharath Mg

Reputation: 1127

Just load it in onCreate. This is what will be called when the app is opened first. Then read about other events like onResume.

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_primary);
   new FetchWebsiteData().execute();
  }

Upvotes: 1

Related Questions