интересный сценарий: мне нужно, чтобы однозначно идентифицировать View
(EditText
быть точным) в RecyclerView
, который имеет CardView
с.Уникально, идентифицирующие отдельные виды в CardView-RecyclerView
У меня есть RecyclerView
с переменным числом из CardView
с. Каждый CardView
имеет EditText
(R.id.etCodeBox
). Когда пользователь прокручивает RecyclerView
и вводит что-то в EditText
по своему выбору и нажимает Button
, я читаю значение R.id.etCodeBox
и всегда возвращает пустое значение (""). Только на firstCardView
, я могу правильно прочитать введенное значение.
Соответствующий фрагмент кода
public boolean verifyCode(Context context, View rootView, int dID, int drID, int userCount)
{
EditText codeBox = (EditText) rootView.findViewById(R.id.etCodeBox);
String enteredCode = codeBox.getText().toString();
long nowInMillis = Calendar.getInstance().getTimeInMillis();
TextView tvDCount, tvDDate;
tvDCount = (TextView) rootView.findViewById(R.id.tvDCount);
tvDDate = (TextView) rootView.findViewById(R.id.tvDDate);
codeBox.setText("");
if (enteredCode.equals(String.valueOf(dID)))
{
:
:
Соответствующие Компоновка сниппет
<android.support.v7.widget.CardView
android:id="@+id/cvDBack"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@color/commonMainListsBackground"
card_view:cardCornerRadius="10dp"
card_view:cardElevation="12dp"
card_view:contentPadding="2dp">
:
:
:
<EditText
android:id="@+id/etCodeBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.5"
android:hint="Code"
android:inputType="numberPassword|none"
android:focusable="true"/>
<Button
android:id="@+id/btClaim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/etCodeBox"
android:text="Claim!"/>
:
:
:
Итак, как я могу прочитать правильное значение из EditText
независимо от позиции CardView
«s? Другими словами, как я могу однозначно указать «выбранный» или «сфокусированный» CardView
R.id.etCodeBox
?
набор тегов к виду, конечно, Что сложного об этом? – Bhargav
Как вы имеете в виду @Bhargav? Установка тега 'EditText' в' onBind' проста, но как я могу прочитать «EditText» определенного «CardView» с помощью 'findViewById()' на основе тега, а затем получить введенное значение? Быстрый фрагмент, может быть, как ответ, поэтому его можно принять? Если это слишком просто, пожалуйста, помогите мне, ответив на этот комментарий. –
Вы используете зрители да? у вас уже есть ссылка на edittext, вам не нужно делать этот дорогой метод findViewById каждый раз, когда вы хотите получить ссылку на «EditText» – Bhargav