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

RadioButtonGroup wird nicht angezeigt :-(

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Hagebutt, 22.12.2011.

  1. Hagebutt, 22.12.2011 #1
    Hagebutt

    Hagebutt Threadstarter Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    0
    Registriert seit:
    28.04.2011
    Hi Forum,

    ich versuche derzeit einen Fragenkatalog in einer Liste darzustellen. Antworten soll man mit Radiobutton. Es soll immer in einer Zeile die Frage stehen und in der nächsten dann die Antwortmöglichkeiten. Weil ich für String und String[] zusammen keinen Adapter gefunden habe,

    habe mir nun folgenden Adapter geschrieben:

    Code:
    import java.util.ArrayList;
    
    import tsys.activity.R;
    
    import android.content.Context;
    import android.graphics.Color;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.TextView;
    
    public class RadiogroupAdapter extends ArrayAdapter<Object> {
      
        RadioGroup mRadioGroup;
        TextView re;
        Context context;
        String TAG = "RGA";
    
          private ArrayList<Object> items;
    
          public RadiogroupAdapter(Context context, int textViewResourceId, ArrayList<Object> items) {
                  super(context, textViewResourceId, items);
                  this.context = context;
                  this.items = items;
          }
          
          @Override
          public View getView(int position, View convertView, ViewGroup parent) {
                  View v = convertView;
                  
                  if (v == null) {
                      Log.d(TAG," Layout");
                      LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                      v = vi.inflate(R.layout.list_items, null);
                  }
    
                  Object o = items.get(position);
                  
                  if (o != null) {
                      if(o instanceof String){
                          Log.d(TAG, (String)o);
                          re=((TextView)v.findViewById(R.id.listtv));
                          re.setText((CharSequence) o);
                      }
                      else if(o instanceof String[]){
                          mRadioGroup = (RadioGroup)v.findViewById(R.id.radiobuttons);
                          createRadioButtons((String[]) o);
                          Log.d(TAG, "DONE");
                      }
                  }
                  return v;
          }
          
          public void createRadioButtons(String[] rating)    {
              mRadioGroup = new RadioGroup(context);
    
              LinearLayout.LayoutParams lp = new RadioGroup.LayoutParams(
                  RadioGroup.LayoutParams.WRAP_CONTENT,
                  RadioGroup.LayoutParams.WRAP_CONTENT);
    
                    for (int j = 0; j < rating.length; j++) {
                        RadioButton rb = new RadioButton(context);
                        rb.setTextColor(Color.BLACK);
                        rb.setText(rating[j]);
                        Log.d(TAG, "Rating: " +rating[j]);
                        mRadioGroup.addView(rb,0,lp);
                    }
          }
    }
    die XML-File:



    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/white"
        android:orientation="vertical"
        android:weightSum="1" >
    <TableRow 
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        
    <TextView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:textSize="30dp" 
        android:textColor="@android:color/black"
        android:id="@+id/listtv"
        >
    </TextView>
    
    <TableRow 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    <RadioGroup
            android:id="@+id/radiobuttons"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal"
            >
         </RadioGroup>
    </TableRow>
    </TableRow>
    </LinearLayout>
    Das String[] rating ist richtig befüllt. Die TextView wird wie gewünscht dargestellt.

    Da ich leider keine Fehlermeldung bekomme und ich auch im Debugger nichts finde stehe ich grad ziemlich auf dem schlauch. :confused2:

    Sieht jemand warum die Buttons nicht angezeigt werden? :sad:

    Danke im voraus

    Grüße
    Hagebutt
     
  2. Hagebutt, 09.01.2012 #2
    Hagebutt

    Hagebutt Threadstarter Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    0
    Registriert seit:
    28.04.2011
    Hat sich erledigt. :)

    Das Problem war, das ich in der XML File nach der TextView die Tablerow nicht geschlossen habe.
     
    Zuletzt bearbeitet: 09.01.2012

Diese Seite empfehlen