2012-04-01 14 views
0

Ich habe eine ListView (mit einem eigenen Adapter), wo ich eine Löschtaste hinzufügen möchte, indem ich ein Element auf der ListView (wie auf iPhones) tausche.Löschtaste auf ListView-Elementen (wie für iPhone)

Ich weiß wirklich nicht, wie es zu tun ist und wo ich anfangen soll ...

Könnten Sie einige Hinweise bitte geben Sie mir?

Danke

+0

Hoffe, dass Sie Ihre Probleme gelöst hatten – Ishu

+0

Nicht wirklich, noch auf der Suche. – Nico

+0

@DilSe Hast du eine Idee, wie das geht? – Nico

Antwort

3

Was Sie implementieren möchten, ist eine benutzerdefinierte ListView. Sie benötigen ein Layout für die Reihe, hier ist ein Beispiel

res/layout/row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/transparent"> 

    <TextView android:id="@+id/Browse_DateTime" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/transparent" /> 


    <ImageButton android:id="@+id/delete" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" /> 

</LinearLayout> 

Dann müssen Sie die getView() Methode des Adapters außer Kraft zu setzen, ein wenig wie folgt aus:

setListAdapter(new ArrayAdapter<Object>(this, R.layout.row, R.id.Browse_DateTime, ourRows) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater)BrowseActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.row, null); 
      }  
      TextView time = (TextView) v.findViewById (R.id.Browse_DateTime); 
      time.setText(ourRows[position].dateTime); 
      ImageButton delete = (ImageButton) v.findViewById(R.id.delete); 
      delete.setFocusable(false); 
      delete.setImageDrawable(BrowseActivity.this.getResources().getDrawable(R.drawable.deletebutton)); 
      delete.setOnClickListener(BrowseActivity.this); 
      delete.setId(position); 
      return v; 
     } 
    };) 

Mit freundlichen Grüßen.

PS: Dies ist geschnitten & Paste aus meinem Code, BrowseActivity ist nur der Name der Aktivität, in der dieser Code residiert, R.layout.row ist meine row.xml-Datei, Sie nennen es irgendwie so, einfach gesagt in/res/layout /, und wenn deine Schaltfläche zum Löschen eine Bildschaltfläche ist, brauchst du delete.setFocusable (false); (versuchen Sie es ohne und sehen Sie, warum).

+0

Dank pouzzler, aber eigentlich war ich mehr auf der Suche nach etwas näher an den iphone-Stil, wie die Schaltfläche direkt in die TextView des Elements und nicht auf der rechten Seite, außerhalb der TextView. – Nico