Как получить строковое значение в объекте из списка?

#java #android #string

#java #Android #строка

Вопрос:

Я хочу получить строковое значение из объекта, который состоит из ImageView и двух TextView в моем списке, щелкнув по этому конкретному объекту. Но проблема в том, что я не могу получить нужную мне строку.

Всплывающее сообщение должно показывать значение second TextView но оно показывает все, что ему нравится.

 xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:orientation="vertical"
android:onClick="chitChat" >

<ImageView
    android:id="@ id/photoImageView"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:adjustViewBounds="true" />

<TextView
    android:id="@ id/nameTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    tools:text="Name" />

<TextView
    android:id="@ id/uidTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  

Если у вас есть какие-либо другие предложения, которые помогут мне получить какое-либо конкретное значение объекта из выбранного объекта, я хотел бы это услышать.

Заранее большое вам спасибо.

 public void chitChat(View view) {

    TextView otherUid = findViewById(R.id.uidTextView);
    String othersUid = otherUid.getText().toString();

    Toast.makeText(PartyActivity.this, othersUid, Toast.LENGTH_LONG).show();


    if (user != null amp;amp; user.isEmailVerified()) {
        Intent myIntent = new Intent(PartyActivity.this, ChatActivity.class);

        myIntent.putExtra("Other Uid", othersUid);

        PartyActivity.this.startActivity(myIntent);
    }
    else {
        //...
    }
}
  

Комментарии:

1. «… но он показывает все, что ему нравится». что это такое на самом деле?

2. @NikosHidalgo Я имею в виду, что он не показывает точное строковое значение, которое отображается в <b>TextView</b>. Вместо этого он показывает значение другого объекта в списке.

Ответ №1:

Замените нижеприведенную строку

 TextView otherUid = findViewById(R.id.uidTextView);
  

Для:

 TextView otherUid = view.findViewById(R.id.uidTextView);
  

Это должно сработать

Комментарии:

1. Рад, что вам понравилось.

Ответ №2:

… Привет, Сэм, Тебе нужно задать текст второго TextView перед его получением. Вы можете сделать это, добавив android:text во второй textview в xml, чтобы иметь статический текст (значение по умолчанию). Чтобы иметь динамический текст во втором textview, просто задайте текст при создании элемента списка. Надеюсь, это поможет.

Приветствия

Комментарии:

1. Спасибо за ответ, но, конечно, я установил в нем значение. Я просто не показал эту часть кода. Это моя вина. В любом случае спасибо за ответ.