Autore Topic: Gestire Click su TextView sullo Schermo (Widget)  (Letto 1353 volte)

Offline homman

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Gestire Click su TextView sullo Schermo (Widget)
« il: 18 Ottobre 2010, 18:50:50 CEST »
0
Salve a tutti
Sto sviluppando un widget per android, ( e quando dico widget intendo ,che è collegato ad una activity, ma che rimane in ascolto nella schermata principale aspettando aggiornamenti da fornire all utente, diciamo come l'orologio Widget).
Per il provare il codice utilizzo  l' emulatore sotto Win 7.

Ora se faccio un tasto(Button) riesco  a gestire il click , per aprire la mia activity senza problema.
Se invece non voglio il tasto nella schermata home, ma solo una TextView vuota che sia in ascolto per un click , non funziona....
Come devo fare?

io voglio associare al tocco in una determinata zona dello schermo(la mia textview) l apertura di una activity ma non ci riesco

Vi posto qlc foto per capire di che parlo.
La prima con il button, in un click fa tutto quello che deve fare.

Nella seconda immagine il click funziona a caso: ossia ogni tanto funziona se fai il doppio click ,ogni tanto funziona con un singolo click ma come è possibile, che c'è di sbagliato?
 
Vi faccio vedere il codice allegato alla textview per capire se qlc non và....



Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;


public class TextViewClick extends Activity {
       
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        View eventArea = (View) findViewById(R.id.tv);
       
        eventArea.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent event) {
                        String action;
                       
                        switch (event.getAction()) {default:    action = "OTHER";       break;  }
       
                        return true;
            }
        });
       
        eventArea.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent event) {
        String action;
        switch (event.getAction()) { default: action = "OTHER"; break;  }
       
        return true;
        }});
       
        }

Grazie a chi mi aiuterà :D
Ciao
« Ultima modifica: 18 Ottobre 2010, 22:17:05 CEST da blackgin »

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:Gestire Click su TextView sullo Schermo (Widget)
« Risposta #1 il: 19 Ottobre 2010, 09:25:41 CEST »
+1
Credo che il problema sia nell'approccio.

Intanto leggiti questo: http://developer.android.com/guide/topics/appwidgets/index.html

Spiega come agganciare un eventlistener ad una view.
Il fatto è che devi lavorare con una remoteView, per cui la cosa va fatta lato AppWidgetProvider.

Ti riporto uno stralcio dal link precedente:

Codice (Java): [Seleziona]
public class ExampleAppWidgetProvider extends AppWidgetProvider {

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        final int N = appWidgetIds.length;

        // Perform this loop procedure for each App Widget that belongs to this provider
        for (int i=0; i<N; i++) {
            int appWidgetId = appWidgetIds[i];

            // Create an Intent to launch ExampleActivity
            Intent intent = new Intent(context, ExampleActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

            // Get the layout for the App Widget and attach an on-click listener to the button
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
            views.setOnClickPendingIntent(R.id.button, pendingIntent);

            // Tell the AppWidgetManager to perform an update on the current App Widget
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }
}

Basta che la tua remoteView sia la Edittext e la cosa dovrebbe funzionarti senza problemi.

fammi sapere.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline homman

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Re:Gestire Click su TextView sullo Schermo (Widget)
« Risposta #2 il: 19 Ottobre 2010, 15:49:45 CEST »
0
Sei stato velocissimo e eficacissimo. ho messo che sull area di background del widget qls click avvia una activity e ora funziona.
grazie mille :D
Risolvete Qualsiasi problema xD.
Ciao