1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

ListView: ItemID setzen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von zapbee, 30.01.2012.

  1. zapbee, 30.01.2012 #1
    zapbee

    zapbee Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    30.01.2012
    Hallo,
    ich möchte eine einfache DB-Tabelle in einem ListView anzeigen und bei Click auf ein Produkt im nächsten Screen die Produkt -Details anzeigen. Dazu muss ich im ListView die (Produkt)-ID setzen, damit ich sie dann übergeben kann. Aber ich weiß nicht wie. Die ListView-Tutorials zeigen immer nur, wie ich String-Arrays anzeige.
    TABELLE
    Code:
    ID Produktname
    1  Produkt1
    2  Produkt2
    3  Produkt3
    
    LISTE
    Produkt1 - Click soll Produkt-ID 1 an Detailscreen übergeben
    Produkt2 - ...
    Produkt3 - ...

    Was muss ich tun?

    Danke
    Zap
     
  2. Tom299, 30.01.2012 #2
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Du brauchst nen eigenen Adapter, dem du dein Objekt übergibst anstatt einem String-Array.

    Hier mal ein Beispiel für nen Login-Adapter:

    Code:
    public class LoginArrayAdapter extends ArrayAdapter<User> {
    
    	private int resourceID;
    	//private int tvResourceID;
    	
    	
    	public LoginArrayAdapter(Context context, int resourceId, List<User> userList) {
    		super(context, resourceId, userList);
    		this.resourceID = resourceId;
    	}
    	
    	public LoginArrayAdapter(Context context, int resourceId, int textViewResourceId, List<User> userList) {
    		super(context, resourceId, textViewResourceId, userList);
    		this.resourceID = resourceId;
    		//this.tvResourceID = textViewResourceId;
    	}
    	
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    		User user = getItem(position);
    		LinearLayout layout = null;
    		
    		if (convertView == null) {
    			layout = new LinearLayout(getContext());
    			LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    			inflater.inflate(resourceID, layout, true);
    		}
    		else {
    			layout = (LinearLayout)convertView;
    		}
    
    		TextView tvUsername = (TextView)layout.findViewById(R.id.login_spUser_tvUsername);
    		tvUsername.setText(user.getLogin());
    		
    		return layout;
    	}
    }
    
     

Diese Seite empfehlen