Autore Topic: Crash activity con 2.3 ma non con 4.0+  (Letto 973 volte)

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Crash activity con 2.3 ma non con 4.0+
« il: 25 Marzo 2013, 10:45:45 CET »
0
Salve, ho un problema nella mia app su una delle activity (dettaglio di una voce del mio db mysql) l'app va in crash solo con 2.3 mentre funziona nelle ultime versioni di Android. Come errore mi da questo:

Codice: [Seleziona]
03-23 01:01:37.379: D/testService(2126): Sto per lanciare il servizio
03-23 01:01:37.389: W/dalvikvm(2126): VFY: unable to resolve virtual method 4279: Lnet/simonvt/widget/BuildLayerFrameLayout;.setTranslationX (F)V
03-23 01:01:37.389: W/dalvikvm(2126): VFY: unable to resolve virtual method 4279: Lnet/simonvt/widget/BuildLayerFrameLayout;.setTranslationX (F)V
03-23 01:01:37.399: W/dalvikvm(2126): VFY: unable to resolve virtual method 4277: Lnet/simonvt/widget/BuildLayerFrameLayout;.setLayerType (ILandroid/graphics/Paint;)V
03-23 01:01:37.399: W/dalvikvm(2126): VFY: unable to resolve virtual method 2928: Landroid/view/ViewGroup;.postOnAnimation (Ljava/lang/Runnable;)V
03-23 01:01:37.399: W/dalvikvm(2126): VFY: unable to resolve virtual method 4277: Lnet/simonvt/widget/BuildLayerFrameLayout;.setLayerType (ILandroid/graphics/Paint;)V
03-23 01:01:37.439: V/testService(2126): Caricamento: false
03-23 01:01:44.609: V/testService(2126): position: 0
03-23 01:01:44.879: W/dalvikvm(2126): Link of class 'Ltest/testservicedown/CrociereDestActivity;' failed
03-23 01:01:44.879: E/dalvikvm(2126): Could not find class 'test.testservicedown.CrociereDestActivity', referenced from method test.testservicedown.MainActivity$4.onItemClick
03-23 01:01:44.879: W/dalvikvm(2126): VFY: unable to resolve const-class 1248 (Ltest/testservicedown/CrociereDestActivity;) in Ltest/testservicedown/MainActivity$4;
03-23 01:01:47.589: W/dalvikvm(2126): threadid=1: thread exiting with uncaught exception (group=0x40126560)
03-23 01:01:47.599: E/AndroidRuntime(2126): FATAL EXCEPTION: main
03-23 01:01:47.599: E/AndroidRuntime(2126): java.lang.NoClassDefFoundError: test.testservicedown.CrociereDestActivity
03-23 01:01:47.599: E/AndroidRuntime(2126):         at test.testservicedown.MainActivity$4.onItemClick(MainActivity.java:429)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.widget.AdapterView.performItemClick(AdapterView.java:284)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.widget.ListView.performItemClick(ListView.java:3744)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.widget.AbsListView$PerformClick.run(AbsListView.java:1991)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.os.Handler.handleCallback(Handler.java:587)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.os.Handler.dispatchMessage(Handler.java:92)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.os.Looper.loop(Looper.java:130)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at android.app.ActivityThread.main(ActivityThread.java:3687)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at java.lang.reflect.Method.invokeNative(Native Method)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at java.lang.reflect.Method.invoke(Method.java:507)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
03-23 01:01:47.599: E/AndroidRuntime(2126):         at dalvik.system.NativeStart.main(Native Method)

Come posso risolvere???
Grazie
« Ultima modifica: 28 Marzo 2013, 09:59:04 CET da Ricky` »

Offline lorux

  • Utente junior
  • **
  • Post: 97
  • Respect: +12
    • Google+
    • lor.catalano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Sistema operativo:
    Windows
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #1 il: 25 Marzo 2013, 10:58:17 CET »
0
Codice (Java): [Seleziona]
Could not find class 'test.testservicedown.CrociereDestActivity
non è che quella activity utilizza librerie che sulla 2.3 non funzionano?

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #2 il: 25 Marzo 2013, 18:14:52 CET »
0
nessuna libreria...

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #3 il: 27 Marzo 2013, 19:44:44 CET »
0
qualcuno ha idea del perchè crasha?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #4 il: 28 Marzo 2013, 13:46:59 CET »
0
Posta gli import di CrociereDestActivity.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #5 il: 03 Aprile 2013, 10:03:19 CEST »
0
import java.util.ArrayList;
import java.util.List;

import test.testservicedown.models.Crociera;
import test.testservicedown.models.ListAdapter;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #6 il: 06 Aprile 2013, 11:10:39 CEST »
0
Stai sopprimendo degli errori lint. Probabilmente è lì il problema. Lint ti segnalato anche errori di api compatibili
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #7 il: 06 Aprile 2013, 16:59:40 CEST »
0
mmmh e quindi cosa consigli di fare?

Offline kiros

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
    • StefanoFibbi
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #8 il: 07 Aprile 2013, 00:42:26 CEST »
0
O usi API compatibili con la versione 2.3, e quindi smetterà di crashare, oppure continui a svilupparla solo per android da 4.0 in su, e anche in quel caso va bene ... solo che chi ha la 2.3 non potrà installarla. :)

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #9 il: 07 Aprile 2013, 11:59:15 CEST »
0
Si a questa soluzione ero arrivato anche io, ma li quali API non sono compatibili con 2.3 ? voi cosa modifichereste alla luce di quei import? potrei anche postare come ho fatto :
Codice (Java): [Seleziona]
import java.util.ArrayList;
import java.util.List;

import test.testservicedown.models.Crociera;
import test.testservicedown.models.ListAdapter;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;

public class CrociereDestActivity extends Activity implements OnQueryTextListener{

    private static final String TAG = "testService";

    private String pkg;
    private String zona;
    private String period;
    private String query;
    private String prezzo;
    private String nome;

    private List<String> listaPromo;

    private String from1[] = { "*,substr(a.departure_date, -2,2) ||'_'||substr(a.departure_date, -5,2) ||'_'|| substr(a.departure_date, -8,2) as data"};
    private String from[] = {"*"};
    private String fromMSCDest[] = {"_id", "code", "name"};
    private String fromMSC[] = {"cruise_id", "departure_date", "itinerary_desc", "minimum_price", "nights_number", "departure_port_id", "destination_id", "period_id"};
    private String fromMSCItin[] = {"cruise_id", "day_number", "departure_date", "departure_time", "arrival_date", "arrival_day_number", "arrival_time", "arrival_port_id", "departure_port_id"};

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

        Intent intent = getIntent();
        pkg = getPackageName();

        zona = intent.getStringExtra(pkg + "ZONA");
        query = intent.getStringExtra(pkg + "QUERY");
        period = intent.getStringExtra(pkg + "PERIOD");
        prezzo = intent.getStringExtra(pkg + "PREZZO");
        nome = intent.getStringExtra(pkg + "NOME");
        setTitle("Crociere");

//      Carica Promo-----------------------------------------
        listaPromo = new ArrayList<String>();
        String[] from = {"*"};
        String where = "cruise_id IN (SELECT c.cruise_id FROM msc_cabin c LEFT OUTER JOIN msc_promos p ON c.cabin_id = p.cabin_id WHERE c.cabin_id = p.cabin_id GROUP BY c.cruise_id) GROUP BY d.name";
        Cursor cPromo = null;
        cPromo = getContentResolver().query(ServiceContentProvider.TABLE13_14_CONTENT_URI_PROMO, from, where, null, null);

        while (cPromo.moveToNext()) {
            String cruise_id = cPromo.getString(0);
            listaPromo.add(cruise_id);
        }

        cPromo.deactivate();
        cPromo.close();

        if (query.equals("dest")) {
            caricaDati();
        } else if (query.equals("data")) {
            caricaDatiData();
        } else if (query.equals("prezzo")) {
            caricaDatiPrezzo();
        } else if (query.equals("depar")) {
            caricaDatiPartenza();
        } else if (query.equals("promo")) {
            caricaDatiPromo();
        }

    }

    private void caricaDati(){

        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from1, "d.name = '" + zona + "' GROUP BY a.cruise_id", null, "data ASC");
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);

    }

    private void caricaDatiData(){

        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "m.name = '" + period + "' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);

    }

    private void caricaDatiPrezzo(){

        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "a.minimum_price = '" + prezzo + "' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);

    }

    private void caricaDatiPartenza(){

        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from1, "p.name = '" + nome + "' GROUP BY a.cruise_id", null, "data ASC");
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);

    }

    private void caricaDatiPromo(){

        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        String where = " a.cruise_id IN (SELECT c.cruise_id FROM msc_cabin c LEFT OUTER JOIN msc_promos p ON c.cabin_id = p.cabin_id WHERE c.cabin_id = p.cabin_id GROUP BY c.cruise_id) AND d.name = '" + zona + "' GROUP BY a.cruise_id";

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from1, where, null, "data ASC");
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                crociera.setPromo(true);

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);

    }

    private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

            Intent i = new Intent(arg1.getContext(), DetailsActivity.class);

            TextView tvCruiseID = (TextView) arg1.findViewById(R.id.txtIDCrociera);
            String cruiseId = tvCruiseID.getText().toString();
            TextView tvItinerario = (TextView) arg1.findViewById(R.id.txtItinerario);
            String itin = tvItinerario.getText().toString();
            TextView tvNomeNave = (TextView) arg1.findViewById(R.id.txtNomeNave);
            String nomeNave = tvNomeNave.getText().toString();
            TextView tvAnno = (TextView) arg1.findViewById(R.id.txtAnno);
            String anno = tvAnno.getText().toString();
            TextView tvMese = (TextView) arg1.findViewById(R.id.txtMese);
            String mese = tvMese.getText().toString();
            TextView tvGiorno = (TextView) arg1.findViewById(R.id.txtGiorno);
            String giorno = tvGiorno.getText().toString();
            TextView tvNomePortoDep = (TextView) arg1.findViewById(R.id.txtPortoPart);
            String nPortoDep = tvNomePortoDep.getText().toString();
            TextView tvNomePortoArr = (TextView) arg1.findViewById(R.id.txtPortoArr);
            String nPortoArr = tvNomePortoArr.getText().toString();
            TextView tvDataDep = (TextView) arg1.findViewById(R.id.txtDataPartenza);
            String dataDep = tvDataDep.getText().toString();
            TextView tvDataArr = (TextView) arg1.findViewById(R.id.txtDataArrivo);
            String dataArr = tvDataArr.getText().toString();
            TextView tvNNotti = (TextView) arg1.findViewById(R.id.txtNNotti);
            String nNotti = tvNNotti.getText().toString();


            i.putExtra(pkg + "CRUISEID", cruiseId);
            i.putExtra(pkg + "ITIN", itin);
            i.putExtra(pkg + "NNAVE", nomeNave);
            i.putExtra(pkg + "ANNO", anno);
            i.putExtra(pkg + "MESE", mese);
            i.putExtra(pkg + "GIORNO", giorno);
            i.putExtra(pkg + "NPORTODEP", nPortoDep);
            i.putExtra(pkg + "NPORTOARR", nPortoArr);
            i.putExtra(pkg + "DATADEP", dataDep);
            i.putExtra(pkg + "DATAARR", dataArr);
            i.putExtra(pkg + "NNOTTI", nNotti);

            startActivity(i);

        }

    };

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @SuppressLint("NewApi")
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_search, menu);
        if(android.os.Build.VERSION.SDK_INT < 11){

        }else {
            SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
            searchView.setOnQueryTextListener(this);
        }
        return super.onCreateOptionsMenu(menu);
    }

    public boolean onQueryTextChange(String newText) {
        // TODO Auto-generated method stub
        return false;
    }

    public boolean onQueryTextSubmit(String query1) {
        Log.v(TAG, "Ricerca: " + query);
        if (!query1.equals("")) {
            ricerca(query1);
//          if (query.equals("dest")) {
//              ricerca(query1);
//          } else if (query.equals("data")) {
//              ricercaData(query1);
//          } else if (query.equals("prezzo")) {
//              ricercaPrezzo(query1);
//          } else if (query.equals("depar")) {
//              ricercaPartenza(query1);
//          } else if (query.equals("promo")) {
//              ricercaPromo(query1);
//          }

        }
        return false;
    }

    private void ricerca(String query){
        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
//      c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "d.name = '" + zona + "' AND a.itinerary_desc LIKE '%" + query + "%' GROUP BY a.cruise_id", null, null);
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "a.itinerary_desc LIKE '%" + query + "%' OR a.ship_name LIKE '%" + query + "%' OR p.name LIKE '%" + query + "%' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);
    }

    private void ricercaData(String query){
        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "m.name = '" + period + "' AND a.itinerary_desc LIKE '%" + query + "%' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);
    }

    private void ricercaPrezzo(String query){
        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "a.minimum_price = '" + prezzo + "' AND a.itinerary_desc LIKE '%" + query + "%' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);
    }

    private void ricercaPartenza(String query){
        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, "p.name = '" + nome + "' AND a.itinerary_desc LIKE '%" + query + "%' GROUP BY a.cruise_id", null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                if (listaPromo.contains(crociera.getCruiseId())) {
                    crociera.setPromo(true);
                    Log.v(TAG, "Promo: " + crociera.getCruiseId());
                }else {
                    crociera.setPromo(false);
                }

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);
    }

    private void ricercaPromo(String query){
        List<Crociera>lstCrociere = new ArrayList<Crociera>();

        String where = " a.cruise_id IN (SELECT c.cruise_id FROM msc_cabin c LEFT OUTER JOIN msc_promos p ON c.cabin_id = p.cabin_id WHERE c.cabin_id = p.cabin_id GROUP BY c.cruise_id) AND d.name = '" + zona + "' AND a.itinerary_desc LIKE '%" + query + "%' GROUP BY a.cruise_id";

        Cursor c = null;
        c = getContentResolver().query(ServiceContentProvider.TABLE13_14_15_16_17_CONTENT_URI, from, where, null, null);
        if (c.getCount() > 0) {
            while (c.moveToNext()) {
                Crociera crociera = new Crociera();
                crociera.setCruiseId(c.getString(0));
                crociera.setItinerario(c.getString(2));
                crociera.setNomeNave(c.getString(8));
                String prezzo = c.getString(3).replace(",", ".");
                crociera.setPrezzo(Float.parseFloat(prezzo));
                crociera.setNomePortoPartenza(c.getString(27));
                crociera.setDataPartenza(c.getString(1));
                crociera.setArrival_potr_id(c.getString(19));
                crociera.setNomePortoArrivo("");
                crociera.setDataArrivo("");
                crociera.setGiorno(c.getString(1).substring(0,2));
                crociera.setMese(crociera.getDataPartenza());
                crociera.setnNotti(Integer.parseInt(c.getString(4)));

                crociera.setPromo(true);

                lstCrociere.add(crociera);

            }
        }

        c.deactivate();
        c.close();



        ListView lvCrociere = (ListView)findViewById(R.id.lvCrociere);

        lvCrociere.setAdapter(new ListAdapter(this, R.layout.row_blog, lstCrociere));

        lvCrociere.setOnItemClickListener(mItemClickListener);
    }

}

Questa è CrociereDestActivity
« Ultima modifica: 07 Aprile 2013, 12:17:48 CEST da Ricky` »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #10 il: 07 Aprile 2013, 12:17:26 CEST »
0
La SearchView è stata introdotta in Android 3.x

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #11 il: 07 Aprile 2013, 13:39:50 CEST »
0
Quindi non posso usare la funzione cerca???

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #12 il: 07 Aprile 2013, 14:51:25 CEST »
0
Puoi usare quella inclusa in ActionBarSherlock...

Offline Nexus19

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus, Nexus 7
  • Sistema operativo:
    Windows 8
Re:Crash activity con 2.3 ma non con 4.0+
« Risposta #13 il: 07 Aprile 2013, 17:33:14 CEST »
0
Ok grazie vediamo se va
« Ultima modifica: 07 Aprile 2013, 18:54:02 CEST da Nexus19 »