1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  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