Autore Topic: Metodo non funzionante  (Letto 1135 volte)

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Metodo non funzionante
« il: 09 Maggio 2012, 19:13:07 CEST »
0
Qualcuno mi sa spiegare come risolvere?

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Metodo non funzionante di
« Risposta #1 il: 09 Maggio 2012, 20:00:14 CEST »
+1
1) Incolla il codice direttamente nel post usando i bbcode appositi  -> <-

2) Specifica meglio il problema e inserisci un po' di codice in più...che non guasta

3) Occhio agli import

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #2 il: 09 Maggio 2012, 20:23:21 CEST »
0
Ecco tutto il codice:
Codice (Java): [Seleziona]
import edu.mit.media.hlt.sensorgraph.SensorGraph.ArduinoReceiver;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.DialogInterface.OnClickListener;



import android.os.Bundle;
import android.widget.Button;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;
import at.abraxas.amarino.Amarino;
import at.abraxas.amarino.AmarinoIntent;

public class DroidRoverActivity extends Activity  {
    //Indirizzo MAC del modem BlueTooth "BlueSMIRF Silver" installato sul Droid Rover
    private static final String DEVICE_ADDRESS="00:06:66:46:5A:88";
   
    private ArduinoReceiver arduinoReceiver = new ArduinoReceiver();
   
    int luci=0,avanti,indietro,sinistra,destra;
    float tempint,tempest;
    Button Bavanti;
    Button Bindietro;
    Button Bdestra;
    Button Bsinistra;
    ToggleButton Bluce;
   
        @Override
    public void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Amarino.connect(this, DEVICE_ADDRESS);
        //Referenzialità con i bottoni dell'interfaccia "main.xml"
        Bavanti=(Button) findViewById(R.id.buttonAvanti);  
        Bindietro=(Button) findViewById(R.id.buttonIndietro);
        Bdestra=(Button) findViewById(R.id.buttonDestra);
        Bsinistra=(Button) findViewById(R.id.buttonSinistra);
        Bluce=(ToggleButton) findViewById(R.id.toggleLuci);
       
        Bavanti.setOnClickListener(this);
        Bindietro.setOnClickListener(this);
       
        Bluce.setOnCheckedChangeListener(this);
       
             
       
    }

Offline Tr1stan

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7, Ubuntu 11.04
Re:Metodo non funzionante
« Risposta #3 il: 09 Maggio 2012, 20:32:53 CEST »
0
prova ad importare android.view.View.OnClickListener  :-)

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #4 il: 09 Maggio 2012, 20:44:03 CEST »
0
prova ad importare android.view.View.OnClickListener  :-)

No, da lo stesso errore  :'(

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #5 il: 09 Maggio 2012, 20:56:04 CEST »
0
Altrimenti se facessi così (hint data da Eclipse):
Codice (Java): [Seleziona]
Bavanti.setOnClickListener((OnClickListener) this);
Cambia qualcosa? Se sì cosa?

Offline Tr1stan

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7, Ubuntu 11.04
Re:Metodo non funzionante
« Risposta #6 il: 09 Maggio 2012, 20:57:58 CEST »
+1
Non so se ti può aiutare ma ho questo codice setOnClickListener
Codice (Java): [Seleziona]
        final Button btnCallA2 = (Button)findViewById(R.id.btnCallA2);
        btnCallA2.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                Intent intent = new Intent(ActivityCallActivity.this, SecondActivity.class);
                                startActivity(intent);
                        }
                });  

sempre importando  android.view.View.OnClickListener a me funziona

Offline zaxxon

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Archos 101 G9
  • Sistema operativo:
    Ubuntu 10.04
Re:Metodo non funzionante
« Risposta #7 il: 10 Maggio 2012, 09:22:59 CEST »
0
Attento, la classe DroidRoverActivity non implementa l'interfaccia OnClickListener per questo ti da gli errori quando passi this come argomento del metodo setOnClickListener.

Devi modificare la classe aggiungendo implements OnClickListener e poi definire i metodi previsti dal interfaccia.

Oppure usare una classe diversa come ClickListener per i due bottoni.

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #8 il: 10 Maggio 2012, 09:33:39 CEST »
0
Attento, la classe DroidRoverActivity non implementa l'interfaccia OnClickListener per questo ti da gli errori quando passi this come argomento del metodo setOnClickListener.

Devi modificare la classe aggiungendo implements OnClickListener e poi definire i metodi previsti dal interfaccia.

Oppure usare una classe diversa come ClickListener per i due bottoni.

Ho fatto l'implement dell'OnClickListener, chiede di rendere la classe DroidRoverActivity astratta!

Offline zaxxon

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Archos 101 G9
  • Sistema operativo:
    Ubuntu 10.04
Re:Metodo non funzionante
« Risposta #9 il: 10 Maggio 2012, 09:38:33 CEST »
0
In realtà ti dice che se non definisci i metodi previsti dall'interfaccia, devi dichiararla astratta.
Se non ricordo male tra le opzioni ti propone di definire lui stesso gli skeleton dei metodi mancanti.

Comunque nel tuo caso, l'interfaccia OnClickListener prevede un solo metodo:

Codice: [Seleziona]
public void onClick(View v)
Definisci questo nella tua classe e l'errore scompare.

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #10 il: 10 Maggio 2012, 09:53:59 CEST »
0
In realtà ti dice che se non definisci i metodi previsti dall'interfaccia, devi dichiararla astratta.
Se non ricordo male tra le opzioni ti propone di definire lui stesso gli skeleton dei metodi mancanti.

Comunque nel tuo caso, l'interfaccia OnClickListener prevede un solo metodo:

Codice: [Seleziona]
public void onClick(View v)
Definisci questo nella tua classe e l'errore scompare.

Praticamente dovrei definire poi in quel metodo le operazioni da fare quando clicco sul bottone giusto?

Offline zaxxon

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Archos 101 G9
  • Sistema operativo:
    Ubuntu 10.04
Re:Metodo non funzionante
« Risposta #11 il: 10 Maggio 2012, 10:10:12 CEST »
0
Su entrambi i bottoni, visto che il Listener è unico.
Basandoti sulla View che viene passata come argomento devi capire di quale dei 2 bottoni si tratta ed eseguire il codice corrispondente.

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #12 il: 10 Maggio 2012, 15:59:47 CEST »
0
Su entrambi i bottoni, visto che il Listener è unico.
Basandoti sulla View che viene passata come argomento devi capire di quale dei 2 bottoni si tratta ed eseguire il codice corrispondente.

In teoria i bottoni sarebbero 4. Ma se io passo
Codice (Java): [Seleziona]
this come argomento come risolvo la cosa?

Offline zaxxon

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Archos 101 G9
  • Sistema operativo:
    Ubuntu 10.04
Re:Metodo non funzionante
« Risposta #13 il: 10 Maggio 2012, 16:05:53 CEST »
0
Quando scrivi:
Codice (Java): [Seleziona]
Bavanti.setOnClickListener(this);
Dici al bottone Bavanti che deve segnalare i suoi eventi al listener this, che nel tuo caso è un'istanza della classe DroidRoverActivity.

Quando questi eventi vengono segnalati, viene invocato il metodo onClick del listener indicato e come parametro viene passata la view che ha generato l'evento, in questo caso Bavanti (ricordati che i bottoni, come qualunque altra cosa che vedi su Android, derivano da View).

Offline Istorn

  • Utente junior
  • **
  • Post: 53
  • Respect: 0
    • istorn.lol
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Metodo non funzionante
« Risposta #14 il: 10 Maggio 2012, 16:32:05 CEST »
0
Quindi dovrei creare il metodo onClick e fare uno switch con le 4 view (ovvero Bavanti,Bindietro ecc.) basato sulle istruzioni che voglio fargli eseguire. Ho capito bene?