Autore Topic: pagina con 2 menu diversi  (Letto 1053 volte)

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
pagina con 2 menu diversi
« il: 18 Dicembre 2010, 17:52:45 CET »
0
Salve a tutti sono nuovo in android e dovrei fare una pagina con un menu a tendina e un menu a scelta multipla. La cosa sembra molto semplice ma il problema è che i due menu fanno parte di classi che estendono qualcosa di diverso (Activity e ListActivity). La scelta più ovvia è creare 2 classi. Nella prima ho inserito il menu a tendina funzionante e alla fine della sua dichiarazione istanzio l'elemento dell'altra classe per fargli inserire il menu a scelta multipla. Le due parti prese singolarmente funzionano ma in questo modo purtroppo no.

Codice (Java): [Seleziona]
setContentView(R.layout.s2);
spin=(Spinner)findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
S2 s2=new S2();

//costruttore classe S2
String[] list={"museo","cinema","ristorante","bar","shopping"};
ListView lista;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,list);
setListAdapter(adapter);
lista = getListView();
lista.setChoiceMode(5);

Qualcuno potrebbe dirmi dove sbaglio Grazie  :-)

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #1 il: 19 Dicembre 2010, 11:53:53 CET »
0
 :-) il problema è troppo stupido o tuttaltro?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #2 il: 19 Dicembre 2010, 12:06:56 CET »
0
:-) il problema è troppo stupido o tuttaltro?

Io a dire il vero non l'ho proprio capito. Forse è il caso che chiarifichi cosa intendi con "menu" e "menu a tendina". In Android i componenti hanno dei nomi propri che forse è bene utilizzare in modo da far capire cosa intendi.
Inoltre sarebbe il caso che fornissi qualche info in più e magari postassi anche lo scheletro delle due activity a cui fai riferimento.

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #3 il: 19 Dicembre 2010, 13:04:44 CET »
0
Ok grazie dell'attenzione

Dunque devo fare un progetto per cui sono obbligato a svolgerlo in questo modo. Devo fare uno screen con un menu a tendina (spinner) e un menù con scelta multipla (credo si chiamo list...) . Il primo ha bisogno che la classe estenda (extends) Activity, il secondo che estenda ListActivity. Se inserisco il menù a scelta multipla nella classe in cui cè lo spinner che ovviamente estende activity mi dice che il metodo setlistadapter e getlostview non sono definiti perchè ovviamente saran contenuti nella ListActivity. A questo punto io sono obbligato (credo) ad usare due classi distinte una per lo spinner e una per il menù a scelta multipla. Posto il codice seguente che non è funzionante.
Codice (Java): [Seleziona]
package progetto.Gps;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;


public class Progetto_Gps extends Activity implements OnClickListener, AdapterView.OnItemSelectedListener{
       
        Button login;
        EditText username;
        Toast toast;
        String[] items={"100","200","500","1","2"};
        Spinner spin;
       
       
    @Override
    public void onCreate(Bundle savedInstanceState)   {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.s1);
       
        //schermata 1
        login = (Button) findViewById(R.id.login);
        login.setOnClickListener(this);
        username = (EditText) findViewById(R.id.username);        
        toast = Toast.makeText(this,"Username non corretto",Toast.LENGTH_SHORT);
                       
    }
    public void onClick(View v) {              
                String testoInserito;
        if(v == login){
                testoInserito= username.getText().toString();
                if(testoInserito.equals("Sam")){       
                        S2();
                }
                else{
                        toast.show();
                }
               
        }              
        }
    public void S2(){
        setContentView(R.layout.s2);
        //schermata 2
        spin=(Spinner)findViewById(R.id.spinner);
        spin.setOnItemSelectedListener(this);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(adapter);
        S2 s2=new S2();
 
       
       
    }
   
   
   
        public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {

        }
       
        public void onNothingSelected(AdapterView<?> parent) {

        }
       

}
Codice (Java): [Seleziona]
package progetto.Gps;

import java.text.ChoiceFormat;
import android.app.Activity;
import android.os.Bundle;
import android.app.ListActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;

public class S2 extends ListActivity{
       
        public S2(){
        String[] list={"museo","cinema","ristorante","bar","shopping"};
        ListView lista;
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,list);
        setListAdapter(adapter);
        lista = getListView();
        lista.setChoiceMode(5);
        }
       
       
        public void onListItemClick(ListView parent, View v, int position, long id) {

        }
       
       
}

Se avete bisogno di altri chiarimenti basta chiedere....
Grazie dell'aiuto

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:pagina con 2 menu diversi
« Risposta #4 il: 19 Dicembre 2010, 13:31:55 CET »
0
Scusa tu in sostanza vuoi uno Spinner e una ListView nella stessa Activity?
Allora ti fai un layout con queste due cose e lo imposti tramite setContentView(R.layout.nomelayout) nell'unica Activity che andrai a creare (in questo caso quindi la classe estenderá Activity).

Poi tramite il metodo findViewById(R.id.tuoid) ottieni i due componenti (a patto che nel layout tu gli abbia dato un id).
Da questo momento hai una ListView e uno Spinner che puoi gestire come meglio credi.

Per chiarezza: le classi che estendono Activity/ListActivity, sono ognuna una schermata in Android.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #5 il: 19 Dicembre 2010, 13:55:32 CET »
0
Citazione
Scusa tu in sostanza vuoi uno Spinner e una ListView nella stessa Activity?
Allora ti fai un layout con queste due cose e lo imposti tramite setContentView(R.layout.nomelayout) nell'unica Activity che andrai a creare (in questo caso quindi la classe estenderá Activity).

Poi tramite il metodo findViewById(R.id.tuoid) ottieni i due componenti (a patto che nel layout tu gli abbia dato un id).
Da questo momento hai una ListView e uno Spinner che puoi gestire come meglio credi.

fin qu tutto chiaro e l'ho già fatto

Citazione
Per chiarezza: le classi che estendono Activity/ListActivity, sono ognuna una schermata in Android.

Il problema è che io devo metterli nella stessa schermata...

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:pagina con 2 menu diversi
« Risposta #6 il: 19 Dicembre 2010, 14:11:15 CET »
+1
Se hai giá fatto tutto quello che ho scritto, non dovresti avere problemi.
NON devi creare una classe per ognuno dei due componenti.
Crei una sola Activity e di lá fai
Codice (Java): [Seleziona]
Spinner myspinner = (Spinner) findViewById(R.id.myspinner);
ListView mylist = (ListView) findViewById(R.id.mylist);
e poi le usi come vuoi
Codice (Java): [Seleziona]
mylist.setAdapter(adapter);
myspinner.blablabla();
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #7 il: 19 Dicembre 2010, 16:58:23 CET »
0
Grazie, risolto

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: pagina con 2 menu diversi
« Risposta #8 il: 19 Dicembre 2010, 22:18:23 CET »
0
Ma per caso stai facendo il progetto di mobidata?

Offline Sam

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
Re:pagina con 2 menu diversi
« Risposta #9 il: 20 Dicembre 2010, 10:05:20 CET »
0
Citazione
Ma per caso stai facendo il progetto di mobidata?
;-) è possibile....