Autore Topic: ContextRail / PopupMenu  (Letto 832 volte)

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
ContextRail / PopupMenu
« il: 19 Aprile 2011, 12:53:14 CEST »
0
Salve a tutti, dopo avere visto il tutorial di JD riguardante le QuickActions ([facile] Context Rail e Popup Menu (aka QuickActions) - Android Developers Italia) ho deciso di implementarle nella mia applicazione, ma qui mi scontro con alcuni problemi, riguardanti il fatto che non riesco a fare partire l'applicazione poichè mi segnala alcuni errori nel codice Java, benchè io lo abbia copiato paro paro dall'esempio di JD..
Codice (Java): [Seleziona]
package it.mangusto.redtomato;

import net.londatiga.android.ActionItem;
import net.londatiga.android.PopupMenu;
import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class TabRicetta extends Activity {
       
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_ricetta);
       
        // Creazione delle voci da inserire nel PopupMenu
        final ActionItem block = new ActionItem();
                block.setTitle("Ingredienti");
                block.setIcon(getResources().getDrawable(R.drawable.ic_block_default_rail));
                block.setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {
                                Toast.makeText(TabRicetta.this, "Ingredienti" , Toast.LENGTH_SHORT).show();
                        }
                });
               
                final ActionItem mercato = new ActionItem();
               
                mercato.setTitle("Mercato");
                mercato.setIcon(getResources().getDrawable(R.drawable.ic_popup_cart));
                mercato.setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {
                                Toast.makeText(TabRicetta.this, "Mercato" , Toast.LENGTH_SHORT).show();
                        }
                });
       
        findViewById(R.id.button5).setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                PopupMenu pm = new PopupMenu(v);

                                pm.addActionItem(block);                               
                                pm.addActionItem(mercato);

                                pm.show();
                        }
                });
        }      
}
Gli errori sono nei due pezzi di codice
Codice (Java): [Seleziona]
block.setOnClickListener(new OnClickListener()
mercato.setOnClickListener(new OnClickListener()
anche se nell'esempio di JD non rileva alcun errore e pure provando io a scrivere lo stesso codice nel progetto di JD scaricata da google code funziona.
Evidentemente devo avere sbagliato io a copiare alcuni file all'interno del mio progetto (anche se ho provato più volte a copiare tutti i file da un progetto all'altro e i problemi sono rimasti..). Qualcuno ha qualche consiglio su che fare?

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:ContextRail / PopupMenu
« Risposta #1 il: 19 Aprile 2011, 13:36:27 CEST »
0
ma che errori ti da?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:ContextRail / PopupMenu
« Risposta #2 il: 19 Aprile 2011, 14:17:53 CEST »
0
ma che errori ti da?
Mi dice o di cambiare setOnClickListener(OnClickListener) in setOnClickListener(OnClickListener) (uguale, e se lo faccio mi modifica ActionItem.java in maniera sbagliata) oppure (a seconda delle volte..) di aggiungere android.content.DialogInterface.OnClickListener.onClick() (e lo faccio non succede nulla)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:ContextRail / PopupMenu
« Risposta #3 il: 19 Aprile 2011, 14:22:36 CEST »
0
É un problema relativo agli import.
é possibile che usi alyri onclicklistener e quindi cerca di usare lo stesso import per tutti?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:ContextRail / PopupMenu
« Risposta #4 il: 19 Aprile 2011, 14:48:57 CEST »
0
É un problema relativo agli import.
é possibile che usi alyri onclicklistener e quindi cerca di usare lo stesso import per tutti?
Sinceramente credo proprio di no. Visto che mi hai fatto venire il dubbio ho scritto da zero in un nuovo file il codice che mi serve e presenta sempre gli stessi errori
Codice (Java): [Seleziona]
package it.mangusto.redtomato;

import net.londatiga.android.ActionItem;
import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;

public class BlaBla extends Activity {
        public void onCreate (Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                setContentView(R.layout.layout_ricetta);
               
                ActionItem ai = new ActionItem();
                ai.setTitle("Prova");
                ai.setIcon(getResources().getDrawable(R.drawable.ic_block_default_rail));
                ai.setOnClickListener(new OnClickListener(){
                        public void onClick(View v){
                                // TODO
                        }
                });
        }
}

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:ContextRail / PopupMenu
« Risposta #5 il: 19 Aprile 2011, 16:52:31 CEST »
+1
Credo che a te serva questo OnClickListener.
Era quello che intendevo dirti prima.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:ContextRail / PopupMenu
« Risposta #6 il: 19 Aprile 2011, 22:16:50 CEST »
0
Credo che a te serva questo OnClickListener.
Era quello che intendevo dirti prima.
Ti becchi un immenso +1 perchè mi hai risolto in maniera brillante il problema, anche se io nella mia ignoranza di Java ed Android non capisco come mai il codice di JD nel suo tutorial sia diverso dal mio ma il risultato sia lo stesso!  :-o

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:ContextRail / PopupMenu
« Risposta #7 il: 20 Aprile 2011, 09:00:41 CEST »
0
Visto che non ho il tempo di controllare quanto dici, inviterò JD a dare un'occhiata e a risponderti, se possibile.
;)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:ContextRail / PopupMenu
« Risposta #8 il: 20 Aprile 2011, 09:14:03 CEST »
0
Ciao mangusto, ho fatto un checkout del progetto proprio ora, sul pc che uso qui a lavoro, dove ho da poco installato da zero l'ambiente di sviluppo, e non ho riscontrato alcun tipo di problema. Tutto il codice viene riconosciuto e compilato tranquillamente. L'ho anche eseguito su un emulatore, tanto per stare tranquilli: anche qui nessun problema.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:ContextRail / PopupMenu
« Risposta #9 il: 20 Aprile 2011, 09:17:36 CEST »
0
Infatti anche a me all'interno del tuo progetto funziona perfettamente, anche creando da zero un nuovo file. Importando a dovere i file all'interno di un nuovo progetto invece mi riscontra alcuni errori, risolti come ha consigliato 7h38ugg3r.
Per ora mi accontento di vedere che funziona nella mia applicazione, anche se non mi è chiaro il perchè. L'importante è che funzioni  :D