Autore Topic: Fling tra activities  (Letto 973 volte)

Offline teo2490

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: 0
    • Mostra profilo
Fling tra activities
« il: 18 Ottobre 2012, 22:06:17 CEST »
0
Buonasera a tutti.
Avrei una domanda che mi sta facendo dannare non poco: se io ho due activities già pronte, come posso implementare lo swipe tra le due?
Ho letto il tutorial di bradipao ([medio] Activity con ViewPager e Fragments - Android Developers Italia), ma non riesco a venirne a capo! Qualcuno può aiutarmi?
Grazie mille! :-)

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Fling tra activities
« Risposta #1 il: 18 Ottobre 2012, 22:30:23 CEST »
0
Devi trasformare le due activity in fragment e poi creare una nuova activity che include il layout con lo swipe.

Offline teo2490

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: 0
    • Mostra profilo
Re:Fling tra activities
« Risposta #2 il: 19 Ottobre 2012, 16:01:01 CEST »
0
Esatto, ma il mio problema è proprio trasformare le due activities nei fragments! Come potrei fare?
Sono queste

Codice (Java): [Seleziona]
package teo2490.coscenza;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Esame extends Activity {

    // Identificatore delle preferenze dell'applicazione
    private final static String MY_PREFERENCES = "MyPref";
    // Costante relativa al nome della particolare preferenza
    private final static String TEXT_DATA_KEY = "textData";
    private EditText outputView;
    private Button bottone1;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_esame);
            outputView = (EditText) findViewById(R.id.inputData);
            bottone1 = (Button) findViewById(R.id.bottone1);
                bottone1.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View view) {
                                  finish();
                          }
                        });
            updatePreferencesData();
    }

    /**
     * Metodo di gestione del pulsante che salva le preferences
     *
     * @param view
     *            Riferimento al button premuto
     */

    public void savePreferencesData(View view) {
            // Otteniamo il riferimento alle Preferences
            SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
            // Otteniamo il corrispondente Editor
            SharedPreferences.Editor editor = prefs.edit();
            // Modifichiamo il valore con quello inserito nell'EditText
            CharSequence textData = outputView.getText();
            if (textData != null) {
                    // Lo salviamo nelle Preferences
                    editor.putString(TEXT_DATA_KEY, textData.toString());
                    editor.commit();
            }
            Toast.makeText(this, "Salvataggio avvenuto!", Toast.LENGTH_LONG).show();
            updatePreferencesData();
    }

    private void updatePreferencesData(){
            // Leggiamo le Preferences
            SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
            // Leggiamo l'informazione associata alla proprietà TEXT_DATA
            String textData = prefs.getString(TEXT_DATA_KEY, "No Preferences!");
            // Lo impostiamo alla EditText
            outputView.setText(textData);
    }
}

Codice (Java): [Seleziona]
package teo2490.coscenza;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;

import android.graphics.Color;

import android.view.Menu;

import android.view.View;
import android.webkit.WebView;
import android.widget.Button;

public class Coscenza extends Activity  {
       
        //String esame = new String("");
        public WebView wb;
        private Button bottone1;


        // activity listener interface
           private OnPageListener pageListener;
           public interface OnPageListener {
              public void onPage1(String s);
           }
           
          @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_coscenza);

                wb = (WebView) findViewById(R.id.myWebView);
                wb.setBackgroundColor(Color.parseColor("#0099FF"));
                bottone1 = (Button) findViewById(R.id.bottone1);
                bottone1.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View view) {
                                  finish();
                          }
                        });
              //Connessione e recupero html
                    Void params = null;
                    AsyncTask<Void, Void, String> at = new DownloadFilesTask();
                    at.execute(params);
            }

    private class DownloadFilesTask extends AsyncTask<Void, Void, String> {
                private String html;
                @Override
            protected String doInBackground(Void... params) {
                  URL u = null;
                 
                        try {
                                u = new URL("http://www.oratoriogavardo.it/public/navphp/AndroidApp/coscenza.php");
                        } catch (MalformedURLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                                  InputStream is = null;
                                try {
                                        is = u.openStream();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                try {
                                        html = convertStreamToString(is);
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                               
                                String r = new String(html);
                                return r;
            }
               
                @Override
              protected void onPostExecute(String r) {
                         String init = new String("<br><div align=\"center\"><img src=\"http://www.oratoriogavardo.it/public/navphp/AndroidApp/ic_esame.png\"  width=\"150\" height=\"40\"><br><br><img src=\"http://www.oratoriogavardo.it/public/navphp/AndroidApp/ic_coscenza.png\" width=\"150\" height=\"40\"></div><br><br>");
                        // aggiorno i campi
                 wb.loadData(init+r, "text/html", "utf-8");
                 //<img src=\"/Credo/res/drawable-hdpi/ic_vangelo.png\"/><br>
              }
               
                  private String convertStreamToString(InputStream is)
                          throws IOException {
                      //
                      // To convert the InputStream to String we use the
                      // Reader.read(char[] buffer) method. We iterate until the
                      // Reader return -1 which means there's no more data to
                      // read. We use the StringWriter class to produce the string.
                      //
                      if (is != null) {
                          Writer writer = new StringWriter();

                          char[] buffer = new char[1024];
                          try {
                              Reader reader = new BufferedReader(
                                      new InputStreamReader(is, "iso-8859-1"));
                              int n;
                              while ((n = reader.read(buffer)) != -1) {
                                  writer.write(buffer, 0, n);
                              }
                          } finally {
                              is.close();
                          }
                          return writer.toString();
                      } else {        
                          return "";
                      }
                  }
                 
                 
    }
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_coscenza, menu);
        return true;
    }
}

       

Grazie mille!  :-)

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Fling tra activities
« Risposta #3 il: 19 Ottobre 2012, 16:04:53 CEST »
0
Esatto, ma il mio problema è proprio trasformare le due activities nei fragments! Come potrei fare?

Beh se non sai proprio da dove iniziare (tipo cambiare l'extends da Activity a Fragment) direi che non conosci nemmeno la teoria dei fragment!

Dai una lettura qui e poi inizia a provare: Fragments | Android Developers