problem mit listview onitemclick

  • 2 Antworten
  • Neuester Beitrag
Diskutiere problem mit listview onitemclick im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

Astarte

Neues Mitglied
Hallo, habe das problem, das, wenn ich einen listview eintrag anklicke, ich einen alert-dialog augebe. aber: da steht nicht der listview eintrag drinnen, sondern nur: at.example.test@Kunden 234b74

Die listview wird über ein extra-layout mit 3 textviews angezeigt und über eine datenbank importiert.


Code:
public class MainActivity extends Activity {
    
        ListView list;
        Animation myAnimation;
        private DBAdapter db;
        
        
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
   db = new DBAdapter(this);
   db.open();
   
   List<Kunde> kunden = db.getAllKunde();
   list = (ListView)findViewById(R.id.listViewStamm);
   KundeListViewAdapter kundeadapter = new KundeListViewAdapter(this, R.layout.kunden_datensatz, kunden);
   list.setAdapter(kundeadapter); 
   list.setTextFilterEnabled(true); 
   
    myAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fadeoutfadein);    
    list.setOnItemClickListener(new OnItemClickListener(){ 
        
        @Override
        public void onItemClick(AdapterView<?> arg0, View view, int position,
                long id) {
            
            AlertDialog.Builder adb = new AlertDialog.Builder(
                    MainActivity.this);
                    adb.setTitle("ListView OnClick");
                    adb.setMessage("Selected Item is = "
                    + list.getItemIdAtPosition(position));
                    adb.setPositiveButton("Ok", null);
                    adb.show();                     
                    list.setAnimation(myAnimation);                                                }
                                                    });
    
            
        }
 
Max1809

Max1809

Fortgeschrittenes Mitglied
Hi,

nun über folgenden Code
Code:
list.getItemIdAtPosition(position)
holst Du dir ja nur das jeweilige Objekt in der ListView.

So wie ich das sehe hast Du wahrscheinlich in der ListView Elemente von der Klasse "Kunde" drin. Dann musst Du auch auf die jeweiligen Eigenschaften dieses Objekts zugreifen.

z.B.:
Code:
list.getItemIdAtPosition(position).[COLOR=Orange]Vorname [/COLOR]+ list.getItemIdAtPosition(position).[COLOR=Orange]Nachname[/COLOR]
 
A

Astarte

Neues Mitglied
Danke für deine hilfe, hab das jetzt SO gelöst :scared:


Code:
public class MainActivity extends Activity {
    
        ListView list;
        
        private DBAdapter db;
        
        
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
   db = new DBAdapter(this);
   db.open();
   
   List<Kunde> kunden = db.getAllKunde();
   list = (ListView)findViewById(R.id.listViewStamm);
   
   list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
        // TODO Auto-generated method stub
         TextView txt = (TextView)view.findViewById(R.id.txt_list_kundename);
         Toast.makeText(arg0.getContext(), txt.getText().toString(), Toast.LENGTH_SHORT).show();
    }
       
   });
   KundeListViewAdapter kundeadapter = new KundeListViewAdapter(this, R.layout.kunden_datensatz, kunden);
   list.setAdapter(kundeadapter); 
   
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
 
Ähnliche Themen - problem mit listview onitemclick Antworten Datum
2
1
2