H
Hagebutt
Neues Mitglied
- 0
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:
die XML-File:
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.
Sieht jemand warum die Buttons nicht angezeigt werden?
Danke im voraus
Grüße
Hagebutt
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);
}
}
}
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>
Da ich leider keine Fehlermeldung bekomme und ich auch im Debugger nichts finde stehe ich grad ziemlich auf dem schlauch.
Sieht jemand warum die Buttons nicht angezeigt werden?
Danke im voraus
Grüße
Hagebutt