- Forum-Beiträge: 5
01.02.2017, 15:13:26 via Website
01.02.2017 15:13:26 via Website
Hallo miteinander!
Ich bin neu im Forum und habe direkt mal eine Frage!
Ich habe eine ListView mit einem selbst geschriebenen ArrayAdapter und möchte nun, dass die ListenElemente selektierbar sind. Mittels listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); kommt kein Ergebnis.
Hier mein ArrayAdapter:
public class ArrayAdapterAktivitaeten extends ArrayAdapter<Aktivitaet> {
private Context context;
private List<Aktivitaet> aktivitaeten;
public ArrayAdapterAktivitaeten(Context context, List<Aktivitaet> aktivitaeten) {
super(context, R.layout.list_aktivitaeten, aktivitaeten);
this.context = context;
this.aktivitaeten = aktivitaeten;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_aktivitaeten, parent, false);
TextView uhrzeit = (TextView) row.findViewById(R.id.tv_uhrzeit);
TextView geplanteAktivitaet = (TextView) row.findViewById(R.id.tv_geplante_aktivitaet);
TextView tatsaechlicheAktivitaet = (TextView) row.findViewById(R.id.tv_tatsaechliche_aktivitaet);
String uhrzeitText = null;
try {
uhrzeitText = new SimpleDateFormat("HH:mm").format(new SimpleDateFormat("HH-mm").parse(aktivitaeten.get(position).getUhrzeit()));
} catch (ParseException e) {
e.printStackTrace();
}
uhrzeit.setText(uhrzeitText);
geplanteAktivitaet.setText(aktivitaeten.get(position).getGeplanteAktivitaet());
tatsaechlicheAktivitaet.setText(aktivitaeten.get(position).getTatsaechlicheAktivitaet());
Spinner spinner = (Spinner) row.findViewById(R.id.sp_bewertung);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(parent.getContext(), R.array.spinnerBewertung, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
AktivitaetDataSource dataSource = AktivitaetDataSource.getDataSource(parent.getContext());
spinner.setSelection(dataSource.getBewertung((aktivitaeten.get(position).getId())));
final int position1 = position;
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
aktivitaeten.get(position1).setBewertung(pos);
AktivitaetDataSource dataSource = AktivitaetDataSource.getDataSource(parent.getContext());
pos="+pos);
dataSource.updateBewertung(aktivitaeten.get(position1).getId(), pos);
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
return row;
}
}
UND ein Auszug aus MainActivity. java:
private void zeigeDatenAn(){
Log.d(LOG_TAG, "vor getActivitaeten()");
dataSource.open();
aktivitaeten = dataSource.getAktivitaeten(Calendar.getInstance());
Log.d(LOG_TAG, "vor ListView finden");
ListView listView = (ListView) findViewById(R.id.list_aktivitaeten);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.getFocusables(position);
view.setSelected(true);
}
});
Log.d(LOG_TAG, "Adapter fertig machen");
ArrayAdapterAktivitaeten adapter = new ArrayAdapterAktivitaeten(this, aktivitaeten);
listView.setAdapter(adapter);
Log.d(LOG_TAG, "Adapter gesetzt");
}
Und die ListAktivitaeten .xml
<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http:/ /schemas. android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_height="wrap_content"
android:id="@+id/tv_uhrzeit"
android:text="00:00"
android:layout_width="40dp" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.3">
<TextView
android:text="Aktivitaet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_geplante_aktivitaet"
android:layout_weight="1" />
<TextView
android:text="Tatsaechliche Aktivitaet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_tatsaechliche_aktivitaet"
android:layout_weight="1" />
</LinearLayout>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/sp_bewertung"
android:layout_weight="0.7" />