Beenden einer Aktivität von Fragment

In meiner Anwendung habe ich 2-fragment, Fragment A und Fragment B. Auf diese beiden Fragmente Iam dabei einige XML-parsing-und Auffüllen von listviews.Ich möchte zu implementieren, die einen splash-screen für mein app.So, dass es die Anzeige während der Analyse und der Bevölkerung von listviews und endet, wenn Ihre getan. Für diese habe ich eine Tätigkeit SplashActivity.Ich habe Umgesetzt asyntask auf FragmentA und rief die SplashActivity auf preexecute-Abschnitt.Nun, wenn die app startet SplashActivity loszulegen.Aber ich kann nicht beenden Sie diese Aktivität auf postexecute der FragmentA. getActivity().finishActivity() nicht funktioniert.Bitte jemand mir helfen, dieses Problem zu lösen oder mir empfehlen, eine andere Methode zu implementieren, die Splash-screen auf Fragment-Aktivität. Vielen Dank im Voraus....

hier ist meine FragmentA=>

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        //Inflating layout
        View v = inflater
                .inflate(R.layout.headlines_fragment, container, false);

        return v;

    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

        super.onViewCreated(view, savedInstanceState);
        Log.i("Tag", "onCreateView");

        //We set clear listener
        loading = (ProgressBar) getActivity().findViewById(R.id.progressBar1);

        if (Headlines.headflag == "malayalam") {
            urls = "http://www.abc.com/rssfeeds/19_18_17_25/1/rss.xml";

        }

        if (Headlines.headflag == "english") {
            urls = "http://www.abc.com/en/rssfeeds/1_2_3_5/latest/rss.xml";

        }

        new ProgressAsyncTask().execute();

        MainActivity.refresh.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                new ProgressAsyncTask().execute();

            }
        });

    }

    public void populate_listview() {

        newsList = new ArrayList<HashMap<String, String>>();

        //looping through all song nodes <song>

        for (int i = 0; i < nl.getLength(); i++) {
            //creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            newsList.add(map);
            MarqueeStr = MarqueeStr + " *** " + Title[i];

        }

    }

    public void StartProgress() {
        new ProgressAsyncTask().execute();
    }

    public class ProgressAsyncTask extends AsyncTask<Void, Integer, Void> {

        int myProgress;

        @Override
        protected void onPreExecute() {
            //TODO Auto-generated method stub
            super.onPreExecute();
            myProgress = 0;

            Intent intent = new Intent(getActivity(), Splash.class);
            startActivityForResult(intent, 5); //Here I called Splash Activity

            loading.setVisibility(View.VISIBLE);

        }

        @Override
        protected void onPostExecute(Void result) {
            //TODO Auto-generated method stub
            super.onPostExecute(result);

            getActivity().finishActivity(5);//Here I tried to finish flash activity

            if (Title == null) {

                final AlertDialog.Builder alertbox = new AlertDialog.Builder(
                        getActivity());

                alertbox.setMessage("Error in connection.Do you want to retry");
                alertbox.setPositiveButton("retry",
                        new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface arg0, int arg1) {
                                //getActivity().finish();
                                //Intent intent = new Intent(getActivity(),
                                //MainActivity.class);
                                //startActivityForResult(intent,1);

                            }

                        });

                alertbox.setNegativeButton("exit",
                        new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface arg0, int arg1) {

                                //getActivity().finish();

                            }

                        });

                alertbox.show();

            }

            list = (GridView) getActivity().findViewById(R.id.grid);

            //Getting adapter by passing xml data ArrayList
            adapter = new HeadlinesAdapter(getActivity(), newsList);
            list.setAdapter(adapter);
            loading.setVisibility(View.INVISIBLE);
            Typeface tf = Typeface.createFromAsset(getActivity().getAssets(),
                    "fonts/karthika.TTF");
            MainActivity.flashnews.setText(MarqueeStr);
            if (Headlines.headflag == "malayalam") {
                MainActivity.flashnews.setTypeface(tf);

            }
            list.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                    Intent myintent = new Intent(
                            "com.abc.malayalam2headlinespodcast.PODCAST");
                    Bundle mybundle = new Bundle();
                    mybundle.putInt("number", position);
                    myintent.putExtras(mybundle);

                    startActivity(myintent);

                }
            });

        }

        @Override
        protected Void doInBackground(Void... arg0) {
            //TODO Auto-generated method stub
            parse();

            if (Title != null) {
                populate_listview();
            }

            return null;
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
            //TODO Auto-generated method stub

        }

    }

    public static void parse() {

           //parsing done here
    }

}
InformationsquelleAutor Basim Sherif | 2012-11-30
Schreibe einen Kommentar