Autore Topic: Passaggio dati da activity a fragment  (Letto 447 volte)

Offline roxdragon

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S3
  • Sistema operativo:
    Ubuntu 10.04
Passaggio dati da activity a fragment
« il: 22 Aprile 2014, 00:58:11 CEST »
0
Salve a tutti basta ci rinuncio... posto qui...
Ho un problema... avendo un activity:
Questa è una splashscreren che in background carica delle info...
SplashScreen.java

Codice (Java): [Seleziona]
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);
       
       
        setContentView(R.layout.splashscreen);

        new MyTask().execute("");
    }
     
   
    //handle back button press
    @Override
    public void onBackPressed()
    {
        mIsBackButtonPressed = true;
        super.onBackPressed();
    }
   
   
   
    public class MyTask extends AsyncTask<String, Void, String> {
        ProgressDialog prog;
        String info;
       
        @Override
        protected void onPreExecute() {
            prog = new ProgressDialog(SplashScreen.this);
            prog.setMessage("Connessione in corso...");
            prog.show();
            prog.setCanceledOnTouchOutside(false);
            prog.setCancelable(false);
            thread = 0;
        }
   
        @Override
        protected String doInBackground(String... params) {
                try{
                      .............
                }
                }catch (IOException e) {
                e.printStackTrace();
                }return info;
        }
   
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            prog.dismiss();

           
            Bundle bundle = new Bundle();
            bundle.putString("edttext", "From Activity");

            arrivi fragobj = new arrivi();
           
            fragobj.setArguments(bundle);

            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.fragment_container, fragobj);
            transaction.addToBackStack(null);
            transaction.commit();
           
            Intent intent = new Intent(SplashScreen.this, MainActivity.class);

            SplashScreen.this.startActivity(intent);
           
        }
       
    }// FINE THREAD
   
}
Se tolgo
Codice (Java): [Seleziona]
            Intent intent = new Intent(SplashScreen.this, MainActivity.class);

            SplashScreen.this.startActivity(intent);
Mi funziona ma rimane in splashscreen ovviamente...


codice Fragment
arrivi.java:

Codice (Java): [Seleziona]
public class arrivi extends Fragment {


        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            Bundle bundle=getArguments();
           String strtext = bundle.getString("edttext");
           System.out.println("STRINGA: "+strtext);
            View arrivi = inflater.inflate(R.layout.arrivi, container, false);

           return arrivi;
        }

logcat: Ubuntu Pastebin

Codice (Java): [Seleziona]
04-22 00:55:33.320: E/AndroidRuntime(30063):    at com....onCreateView(arrivi.java:45)è questo:     
Codice (Java): [Seleziona]
 String strtext = bundle.getString("edttext");
Nel logcat vedo che mi stampa:
Codice (Java): [Seleziona]
           System.out.println("STRINGA: "+strtext); correttamente....poi crasha

N.B uso un app con swipe tab...
non ho modificato nessun file XML.
EDIT: ho capito che il problema sta nell'intent...
il vero problema è quando chiamo il mainActivity....

MainActivity.java:
Codice (Java): [Seleziona]
public class MainActivity extends FragmentActivity {
               
        ViewPager Tab;
        TabPagerAdapter TabAdapter;
        ActionBar actionBar;
        public boolean StatusConnection = false;
 
        @Override
        protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
                Tab = (ViewPager)findViewById(R.id.pager);
                               
                Tab.setOnPageChangeListener(.......

RIEDIT:
Codice (Java): [Seleziona]
@Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            prog.dismiss();
           finish();

            Intent i = new Intent();
            i.setClassName("com."com.MainActivity");
Non mi appare nemmeno la mainActivity facendo così
Ne approfitto per farvi auguri di buona pasqua :)
Grazie
« Ultima modifica: 19 Giugno 2014, 11:56:12 CEST da roxdragon »