Kłopot z layout'em i ustawieniem kursora w polu [Android]

0

Witam
Mam zdefiniowaną rozwijaną listę i chce żeby każdy element child zawierał tekst i po prawej stronie, na końcu wiersza checkbox i ikonę usuwania, w tej kolejności.
Próbowałem już kombinować z tym leyoutem, ale skutek był mizerny, albo dwie ikony były zaraz po tekście, a jak już mi się udało przysunąć do końca wiersza to występował tylko jeden z elementów

W tym momencie one się na siebie nakładają. Próbowałem też toLeft/RightOf i nic...

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="#FFFFD0">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/CTextView"
        android:layout_alignParentLeft="true"
        android:textSize="20dp"
        android:padding="10dp"/>

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/CTextView"
        android:layout_centerVertical="true"/>

    <ImageView
        android:id="@+id/delete"        
        android:layout_alignRight="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_delete"
        android:contentDescription="@string/app_name"/>

</RelativeLayout>

Kolejny problem to ustawienie kursora w polu gdzie wywołany został setError. Mam formularz rejestracyjny i gdy np. pole jest puste to wywołuje się setError i automatycznie w tym polu pojawia się kursor. Metodę sprawdzania zawartości pól mam, ale nie mogę sobie poradzić z ustawieniem kursora.

Z góry dziękuje za wskazówki :)

0

Masz do tego napisany adapter?

0

do samej listy tak, ale nie zawarłem w niej jeszcze obsługi checkbox'a i icony usuwania, chciałem najpierw to ułożyć w layout'cie.
Poza tym muszę to wszystko później zintegrować z Api Postman'a wiec odłożyłem to na później :)
Zanim uloze to zgodnie z powyzszym opisem, musze miec to podpiete pod adapter ?

1

Nie,nie musisz mieć tego podpiętego, jednak warto pamiętać, że dłuższy tekst też może popsuć efekt. Ale zamiast opcji align_right jednak użyłbym opcji toLefOf/toRightOf. Masz to zawarte w RelativeLayout to będzie się dało tak zrobić

0

Zmieniając na toRightOf żaden z elementów się nie pojawia :/ Masz może jeszcze jakiś inny pomysł ?

1

Tak to wygląda u mnie i jest ok.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#000000"
    android:layout_width="match_parent" android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView"
        android:textColor="#FFFFFF"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/checkBox"
        android:layout_toStartOf="@+id/checkBox" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@android:drawable/ic_popup_reminder"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New CheckBox"
        android:id="@+id/checkBox"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/imageView"
        android:layout_toStartOf="@+id/imageView" />
</RelativeLayout>
0

No klasa, działa ! wielkie dzięki :) a znacie komendę na wywołanie kursora w danym miejscu ? w tym wypadku w polu, gdzie występuje setError

0

To raczej musisz przekazać kursor dalej lub go zwrócić z jakiejś metody. Nie wiemy co tam u Ciebie siedzi więc ciężko stwierdzić

0

czyli to jednak nie jest takie proste jak mi prowadzący mówił... no szkoda :) jeszcze na koniec zapytam czy przypisanie tego checkboxa i ikony delete pod adapter i później zintegrowanie tego z API, będzie bardzo skomplikowane ? Moge zaprogramować, ze po kliknięciu w button będą dodawane pola nowej notatki, zgodnie z tymi zdefiniowanymi w API ?

0

Możesz, adapter masz właśnie po to aby dostosować zachowanie poszczególnych elementów widoku (tutaj listy) do swoich akcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1