1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. Hagebutt, 22.12.2011 #1
    Hagebutt

    Hagebutt Threadstarter Neuer Benutzer

    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

    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
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Der Zurück-Button wird nicht angezeigt Android App Entwicklung 23.01.2017
Google Play: Youtube-Video wird nicht angezeigt Android App Entwicklung 13.12.2016
Android Quiz App bei falscher Frage soll sie angezeigt werden. Android App Entwicklung 23.10.2016
Prüfen ob dialog angezeigt wurde Android App Entwicklung 25.08.2016
Dialoge werden auf Smartphone nur gestaucht angezeigt. Android App Entwicklung 12.07.2016
Du betrachtest das Thema "RadioButtonGroup wird nicht angezeigt :-(" im Forum "Android App Entwicklung",