2010-08-08 5 views
8

Ich habe erfolgreich meine AutoCompleteTextView implementiert, die auf einer SQLite Abfrage basiert und in einem Array-Adapter platziert ist. Das funktioniert alles wunderbar, aber ich kann mein onclickevent nicht funktionieren.AutoCompleteTextView klicken Ereignis auf Android

Ich möchte nur eine Absicht erstellen, um den ausgewählten Wert an eine neue Aktivität zu übergeben. Ich weiß, wie man einen Onclicklistener erstellt. Ich bin mir nicht sicher, wie ich es auf die Dropdown-Box der AutoCompleteTextView anwenden soll.

Antwort

14

Nevermind. Ich habe es gelöst. Ich habe nur schlecht ausgeführt. Der folgende Code automatisiert meine Textansicht basierend auf einer einfachen SELECT SQLite-Anweisung und wird ausgeführt, wenn der Benutzer die Universität aus der Dropdown-Liste auswählt.

Das onclick-Ereignis erstellt eine neue Absicht und startet eine neue Aktivität, wobei die Auswahl innerhalb der Absicht an diese Aktivität übergeben wird.

final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.ac_university); 
String[] universities = myDbHelper.getAllUnis(db); 

// Print out the values to the log 
for(int i = 0; i < universities.length; i++) 
{ 
    Log.i(this.toString(), universities[i]); 
} 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, universities); 
textView.setAdapter(adapter); 

//textView.setOnItemSelectedListener(this); 
textView.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
          long arg3) { 

     Intent intent = new Intent(Main.this, Campus.class); 
     Bundle bundle = new Bundle(); 

     bundle.putString("university_name", arg0.getItemAtPosition(arg2).toString()); 
     bundle.putLong("_id", arg3); 
     intent.putExtras(bundle); 
     startActivity(intent); 
    } 
0

putExtra-Funktion kann für diesen Zweck verwendet werden. Hier

ist ein Beispiel ...

Formular die Sendeaktivität:

lv.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View v, int pos, long id) { 
      ApplicationInfo x = appinstalled.get(pos); 
      PackageInfo y = appinstall.get(pos); 
      //Intent i = new Intent(InstalledPackages.this, Information.class); 
      i = new Intent(InstalledPackages.this, Information.class); 
      i.putExtra("i",x); 
      i.putExtra("j", y); 
      startActivity(i); 
     } 
    }); 
} 

Auf der Empfangsseite:

super.onCreate(savedInstanceState); 
    Intent myIntent = getIntent(); 
    ApplicationInfo i = (ApplicationInfo)myIntent.getParcelableExtra("i"); 
    PackageInfo j = (PackageInfo)myIntent.getParcelableExtra("j"); 
+0

Ich habe eine clickevent geschaffen, die für meine Listview-Aktivitäten in meiner App funktioniert und ich es für die AutoCompleteTextView angepasst habe, aber wenn ich auf Artikel auf klicken Ich möchte aus der Dropdown-Liste das Ereignis nicht so feuert Ich verweise offensichtlich nicht auf die Dropdown-Liste, also frage ich wirklich nur nach einem generischen Code, der zeigt, wie man ein even vom Klick auf die Drop-Down-Liste feuert !! Prost – Ally