Autore Topic: Il pulsante non mi visualizza l'output  (Letto 731 volte)

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Il pulsante non mi visualizza l'output
« il: 30 Settembre 2011, 15:02:37 CEST »
0
Ciao a tutti, sono appena entrato nel mondo android, e ho un piccolo problema da esporvi. Sto facendo delle prove per costruire un'applicazione che possa interagire con un database, e ho preso come punto di partenza il post "MVC in Android" postata in "Multithreading e servizi" dell'area tutorial e sto lavorando su quella. Il mio intento e quello di far interagire 2 activity ovvero alla pressione di un pulsante passo ad un altra schermata con un altra serie di pulsanti. Di questi pulsanti ne funziona solamente uno, ovvero quello per tornare alla schermata precendente, mentre quello per visualizzare a schermo una una stringa non produce alcun risultato. C'e qualcuno che riuscirebbe ad aiutarmi?
Vi ringrazio in anticipo!!
P.S spero di aver scritto nel posto giusto  :-)

Offline salvatore cino

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s i9000
  • Play Store ID:
    wb apps
  • Sistema operativo:
    ubuntu 11.04
R: Il pulsante non mi visualizza l'output
« Risposta #1 il: 30 Settembre 2011, 15:09:07 CEST »
0
Se posti un pò di codice possiamo dargli un occhiata e aiutarti a risolvere il problema....

Inviato dal mio GT-I9000 usando Tapatalk

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:Il pulsante non mi visualizza l'output
« Risposta #2 il: 30 Settembre 2011, 15:18:12 CEST »
0
Questo è l'xml per la prima activity:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" android:orientation="vertical">
    <Button
        android:layout_width="wrap_content"
        android:id="@+id/accedi"
        android:text="Accedi"
        android:layout_height="wrap_content">
    </Button>
    <Button
        android:text="Chiudi app"
        android:id="@+id/chiudi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </Button>

</LinearLayout>
questo della seconda activity:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <Button
                android:text="start service"
                android:id="@+id/startButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </Button>
        <Button
                android:text="stop service"
                android:id="@+id/stopButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </Button>
        <Button
                android:text="Indietro"
                android:id="@+id/indietro"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
        </Button>
        <TextView
                android:id="@+id/myDataTextView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Premi 'start service' per iniziare"
                android:inputType="textMultiLine" />

</LinearLayout>
E infine il le azioni che dovrebbero eseguire i pulsanti:
Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Prova extends Activity {
        Button chiudi;
        Button accedi;
        @Override
        public void onCreate(Bundle saveInstanceState){
                super.onCreate(saveInstanceState);
        setContentView(R.layout.main);
        setUpViews();
        accedi.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v){
                        Intent myIntent = new Intent(v.getContext(), activity2.class);
                startActivityForResult(myIntent, 0);
                }
        });
        chiudi.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                finish();
                System.exit(0);
            }
        });
        }
        private void setUpViews(){
                accedi=(Button)findViewById(R.id.accedi);
                chiudi=(Button)findViewById(R.id.chiudi);
        }
}

Codice (Java): [Seleziona]
      import java.util.Observable;
import java.util.Observer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class activity2 extends Activity implements Observer {
    Button startButton;
    Button stopButton;
    Button indietro;
    TextView myDataTv;
    MyDataModel dataModel;
    Intent service;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        setUpViews();
        dataModel=MyDataModel.getInstance();
        dataModel.addObserver(this); // aggiungiamo la nostra "View" come osservatore del modello dati
        startButton.setOnClickListener(new OnClickListener() {                 
                        @Override
                        public void onClick(View v) {
                               
                                //vogliamo complicarci la vita,
                                //invece di effettuare la modifica sui dati del modello da qui
                                //facciamo eseguire questa modifica da un servizio
                               
                                service=new Intent(getApplicationContext(), MyService.class);
                                startService(service);
                               
                        }
                });
       
        stopButton.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                                if(service!=null)
                                        stopService(service); //si commenta da solo...
                               
                        }
                });
        indietro.setOnClickListener(new OnClickListener() {

            @Override
                public void onClick(View view) {
                    Intent intent = new Intent();
                    setResult(RESULT_OK, intent);
                    finish();
                }

            });
       
    }

    private void setUpViews() {
                startButton=(Button)findViewById(R.id.startButton);
                stopButton=(Button)findViewById(R.id.stopButton);
                indietro = (Button) findViewById(R.id.indietro);
                myDataTv=(TextView)findViewById(R.id.myDataTextView);          
        }


        @Override
        public void update(Observable observable, Object data) {        //interfaccia observer 
               
                if(observable instanceof MyDataModel){
                        // in quanto potremmo avere piu modelli dati
                        // verifichiamo su quale modello è avvenuto un cambiamento dei dati
                        // prima di effettuare il cast
                        MyDataModel m=(MyDataModel)observable;
                        myDataTv.append(m.getMyData());
                }
               
        }
       
        @Override
        protected void onDestroy() {
                super.onDestroy();
                if(service!=null)
                stopService(service); // quando la nostra activity cessa di esistere, fermiamo il servizio     
        }
       
       
}
Solo che non riesco a trovare il problema, l'app parte ma quando vado a cliccare sul pulsante "start service" non succede nulla. spero di essere stato il piu chiaro possibile  :-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Il pulsante non mi visualizza l'output
« Risposta #3 il: 30 Settembre 2011, 16:06:48 CEST »
0
Come regola generale, lo strumento per indagare è e sarà sempre il LogCat, quindi se non hai presente cosa è e come si usa, comincia da quello.

Per il problema specifico, vedo che hai associato a startService il lancio di MyService.class. Cosa dovrebbe fare?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:Il pulsante non mi visualizza l'output
« Risposta #4 il: 30 Settembre 2011, 16:18:23 CEST »
0
quello che dovrebbe fare questo piccolo programmino e stampare una stringa a video dopo la pressione del pulstante, tutto gestito da un timer che stampa la stringa ogni n°secondi fino a che non premo il tasto stop.
Iniziero ad usare il logcat cosi vedo magari dove puo essere l'errore.

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:Il pulsante non mi visualizza l'output
« Risposta #5 il: 05 Ottobre 2011, 17:09:03 CEST »
0
sono riuscito a risolvere il problema  :-) grazie mille per l'aiuto  :-)