Autore Topic: Come utilizzare un edit text come search box ed uno spinner  (Letto 893 volte)

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Come utilizzare un edit text come search box ed uno spinner
« il: 24 Aprile 2011, 20:49:33 CEST »
0
Salve a tutti e buona Pasqua. Mi ritrovo a scrivervi perchè ho un problema con un edit text ed uno spinner. Ho un tabhost con due tabwidget, cliccandone uno si visualizza l'edit text che deve fare da search box, cliccando l'altro si visualizza uno spinner. Ho da fare due domande:

1) Come riesco a far visualizzare i nomi che devono essere inseriti nel tab della ricerca? Mi spiego meglio, il codice che ho mi funziona alla grande se preso "singolarmente", ma io l'ho aggiunto anche al codice dello spinner e si trovano entrambi nel codice del tabhost:


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

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TabHost;
import android.widget.ArrayAdapter;

public class zedactivity extends Activity {

       


               
       
       
       
       
       
       
       
       
       
       
        String[] regioni = {
            "Umbria",  
            "Aosta",  
            "Calabria",  
            "Sicilia",  
            "Toscana",  
            "Lazio",  
            "Molise",  
            "Liguria",  
           
    };


 Spinner s1;

       
/** Called when the activity is first created. */
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                // Riferimento al TabHost  
                TabHost tabHost = (TabHost) findViewById(R.id.myTabHost);
                tabHost.setup();               
                 // Tab associato alla prima view
                tabHost.addTab(tabHost.newTabSpec("Province").setContent(R.id.EditText01)
                                .setIndicator("Per Province"));

                // Tab associato alla seconda view
                tabHost.addTab(tabHost.newTabSpec("Regioni").setContent(R.id.spinner)
                                .setIndicator("Per Regioni"));
       
//Codice per lo spinner
                s1 = (Spinner) findViewById(R.id.spinner);
                 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, regioni);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 
        s1.setAdapter(adapter);
       
  }

         //Codice per l'edit text che fa da search box

        private ListView lv1;
        private EditText ed;
        private String lv_arr[] = {"Roma","Genova","Campobasso","Firenze","Catanzaro","Perugia",};
        private ArrayList<String> arr_sort= new ArrayList<String>();
        int textlength=0;
       
        public void onStart(Bundle icicle){
        super.onStart();
        setContentView(R.layout.main);
        lv1=(ListView)findViewById(R.id.ListView01);
        ed=(EditText)findViewById(R.id.EditText01);
        // By using setAdpater method in listview we an add string array in list.
        lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
        ed.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
        int count) {

        textlength=ed.getText().length();
        arr_sort.clear();
        for(int i=0;i<lv_arr.length;i++)
        {
        if(textlength<=lv_arr[i].length())
        {
        if(ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0, textlength)))
        {
        arr_sort.add(lv_arr[i]);
        }
        }
        }

        lv1.setAdapter(new ArrayAdapter<String>(zedactivity.this,android.R.layout.simple_list_item_1 , arr_sort));

       
        }
        });
        }
       

}
 


Quando faccio partire l'applicazione lo spinner funziona, ma non mi appaiono i nomi per l'edit text. Come fare?

2) Con lo spinner, una volta selezionata una voce, vorrei che mi comparissero tutte le province di quella regione. Per poterlo fare devo creare una nuova activity associato ad un layout contenente tutte le province d'Italia e poi tramite codice mi visualizza solo quelle della regione selezionata oppure va scritto tutto nel codice appena postato sopra?

Grazie.

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Re:Come utilizzare un edit text come search box ed uno spinner
« Risposta #1 il: 25 Aprile 2011, 01:41:50 CEST »
0
Ho risolto il punto 1), adesso come risolvo il punto 2)?

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Re:Come utilizzare un edit text come search box ed uno spinner
« Risposta #2 il: 28 Aprile 2011, 03:19:19 CEST »
0
Risolto tutto, grazie lo stesso.