Spędziłem dosłownie dwa dni próbując rozwiązać ten problem. Gdyby ktokolwiek mógł mi pomóc, byłbym ogromnie wdzięczny.Własny widok listy z dwoma przyciskami w każdym wierszu
Co usiłuję osiągnąć:
Have ListView, dzięki czemu gracz może dodawać nowe wpisy (graczy) przez pole tekstowe (imię gracza), a następnie przycisk Prześlij. W każdym polu listy ListView wyświetlam nazwę gracza, a następnie dwa przyciski ImageButtons. Jedna z symbolem męskim i jedna z symbolem żeńskim. Symbol męski jest domyślnie przełączany, a użytkownik może ustawić odtwarzacz jako męski lub żeński, przełączając przycisk męski lub żeński. Wreszcie, gdy użytkownik przejdzie do następnego ekranu (nowej aktywności), aplikacja zapisze nazwiska graczy i przypisaną płeć w jakiejś formie przechowywania i przejdzie do następnej czynności.
Co udało mi się osiągnąć:
mam prosty adapter tablicy, która na odtwarzaczu dodanie nowej nazwy gracza do listy, uruchomić notifyDataSetChanged() na nim. Adapter jest również skonfigurowany do używania niestandardowego pliku układu wiersza. Wewnątrz pliku układu wygląda to tak:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/relativeLayout1" android:layout_marginTop="5dp">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/playerName"
android:layout_centerVertical="true" android:text="Derp" android:textStyle="bold" android:layout_marginLeft="5dp" android:textSize="22dp" android:textColor="@color/male_blue"></TextView>
<ImageButton android:layout_height="60dp"
android:layout_width="60dp" android:onClick="maleClickHandler"
android:src="@drawable/male_icon_settings" android:id="@+id/buttonA" android:layout_alignParentRight="true" android:layout_marginRight="65dp"></ImageButton>
<ImageButton android:onClick="femaleClickHandler"
android:layout_height="60dp" android:layout_width="60dp" android:id="@+id/buttonB"
android:layout_alignParentRight="true" android:layout_marginRight="5dp" android:src="@drawable/female_icon_settings"></ImageButton>
</RelativeLayout>
</LinearLayout>
Dwa przyciski na każdym wierszu odnoszą się do metod w pliku klasy. Oto mój kod to:
public void maleClickHandler(View v) {
RelativeLayout vwParentRow = (RelativeLayout) v.getParent();
ImageButton maleButton = (ImageButton) vwParentRow.getChildAt(1);
maleButton.setImageDrawable(getResources().getDrawable(
R.drawable.male_icon_selected));
vwParentRow.refreshDrawableState();
}
public void femaleClickHandler(View v) {
RelativeLayout vwParentRow = (RelativeLayout) v.getParent();
ImageButton femaleButton = (ImageButton) vwParentRow.getChildAt(2);
femaleButton.setImageDrawable(getResources().getDrawable(
R.drawable.female_icon_selected));
vwParentRow.refreshDrawableState();
}
nie wdrożyły jeszcze żadnych wzajemnych połączeń między tymi dwoma przyciskami, aby umożliwić tylko jeden jest aktywny w danej chwili, albo nawet untoggle jeden, ponieważ myślę, że może podejmować całkowicie niewłaściwe podejście.
Problem:
Po dodaniu nowych pozycji do listy, PO przełączenie jednego i/lub drugiego męski/żeński przyciski, robi się naprawdę buggy i/samica przełączana ikona mężczyzna może poruszać tak jak powinien, wraz z dołączonym łańcuchem gracza lub, co bardziej prawdopodobne, osoby, które się przełączyły, pozostaną w pierwszym rzędzie (pozycja tablicy 0 na liście), lub nawet przeniosą się na drugą pozycję listy, i kopiują się jako przełączane na rząd powyżej.
Jak możesz pomóc ...?
załączam obrazek poniżej mojego ekranu z emulatora, aby pomóc zilustrować moje punkty Screenshot!
myślę, że może trzeba użyć jakiejś formy niestandardowe adapter; Wiele czytałem na ten temat, ale nie mogę znaleźć niczego istotnego dla tego, co próbuję osiągnąć, więc gdybyś mógł wskazać mi właściwy kierunek, lub nawet spróbować złożyć najbardziej podstawowe rozwiązanie tego problemu. typ problemu, byłbym bardzo wdzięczny.
Wreszcie, kiedy to działa, która forma przechowywania byłaby najlepsza do przechowywania nazw graczy i ich płci? Chciałbym, aby użytkownik mógł zachować listę graczy po zamknięciu aplikacji i zrestartowaniu jej.
Dzięki za pomoc! :)
Dziękuję, podejrzewałam, że muszę coś z tym zrobić; dziękuję za wyjaśnienie tego pięknie :) –