2010-07-09 3 views

Antwort

2

Hier haben Sie funktionierende Lösung. Nicht meins, aber ich habe Technik beschrieben und es hat funktioniert. Vergessen Sie nicht über img.setBounds(), es ist notwendig!

http://mgmblog.com/2010/06/10/arrayadapter-and-alertdialog-for-single-choice-items/

PS: Original-Beitrag nicht angezeigt Radiobutton, aber mein Layout tut. Meine einzige Reihe XML-Layout-Datei (animal_row.xml in Beispiel fehlt) ist hier:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/miastorow_text" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:textAppearance="?android:attr/textAppearanceLarge" 
android:gravity="center_vertical" 
android:checkMark="?android:attr/listChoiceIndicatorSingle" 
android:paddingLeft="6dip" 
android:paddingRight="6dip" 
android:textColor="#000" 
/> 
+0

genial, danke. –

2

Sie können alles überschreiben und von Grund auf neu erstellen. Erstellen Sie zuerst ein XML, das den gewünschten Inhalt beschreibt. Zum Beispiel:

<!-- test.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
android:background="@color/white"> 
<ImageView android:id="@+id/ImageView01" 
    android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
    android:src="@drawable/facebook"></ImageView> 
<TextView android:id="@+id/TextView01" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/ImageView01" 
    android:text="Facebook" 
      android:textSize="40sp"></TextView> 
<RadioButton android:id="@+id/RadioButton01" 
    android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/TextView01"></RadioButton> 
</RelativeLayout> 

Dann erstellen Sie dieses XML mit dem Warndialog. Sie können die Aktivität behandeln Ihre Dialog lassen, und überschreiben Sie einfach die onCreateDialog wie folgt aus:

@Override 
protected Dialog onCreateDialog(int id) { 
    View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.test, null); 
    return new AlertDialog.Builder(MainActivity.this).setView(view).setTitle("Share") 
        .create(); 
} 

Sie können dann onClick außer Kraft setzen, den Zustand in Ihrem StaticPreferences Dateien zu speichern. Auf diese Weise haben Sie die vollständige Kontrolle über alle Elemente in Ihrer Ansicht.

Ein letzter Ratschlag, wenn Sie die XML erstellen, stellen Sie sicher, dass Sie so flach wie möglich ein Layout erstellen, so dass der Code optimiert ist. Sie können auch mit dem Listenlayout spielen, um so etwas zu erstellen.

+0

Falsche Antwort, in meiner Frage Layout erwähnt, in Ihrem XML-Layout, das Sie machen RadioButton- Unter Kind relativen Layout, Radio-Button machen Kind anderer als Radiogruppe funktioniert nicht. In diesem Fall schlägt Ihre Antwort fehl. –

+0

@Faisal Khan: Er gab nur ein Beispiel. – Macarse

0

Ich habe nicht daran gearbeitet. Aber ich habe eine Idee, die drei Beispiele auf API-Demos zu kombinieren.

  1. AlertDialogs
  2. SingleChoice Adapter
  3. Efficient Adapter

die Schritte, die Sie zu tun haben, sind:

  • Alertdialog erstellen
  • Liste erstellen Adapter Class für die Ansicht möchten Sie leisten.
  • Verwenden Sie die SetAdapter-Methode, um den ListAdapter festzulegen.

Beispielcode:

new AlertDialog.Builder(MainActivity.this).setTitle("Share")setAdapter(new Listadapterclass(),new DialogInterface.OnClickListener(){ 

          @Override 
          public void onClick(DialogInterface arg0, 
            int arg1) { 
           // TODO Auto-generated method stub 
     // the click event on the list item selected       
          }}) 
       .create(); 

hoffen, dass es funktioniert.

+0

funktioniert nicht, wie wir Radiobutton arbeiten in einer Gruppe mit Inflat –