Как присвоить целочисленное значение imageView в Android Studio? - PullRequest
0 голосов
/ 13 июля 2020

Я создаю приложение обратной связи, в котором пользователь должен щелкнуть один из 5 изображений (рейтинг 1–5) в зависимости от его опыта. Моя основная цель - извлечь целочисленное значение этого рейтинга из щелчка imageView и передать его sh в базу данных SQLite.

Я пытаюсь использовать setTag() и getTag(), но безрезультатно. Любая помощь приветствуется. Заранее спасибо.

activity_main. xml -

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textViewName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="99dp"
        android:layout_marginLeft="99dp"
        android:layout_marginTop="64dp"
        android:layout_marginEnd="172dp"
        android:layout_marginRight="172dp"
        android:layout_marginBottom="151dp"
        android:text="Name"
        android:textSize="22sp"
        app:layout_constraintBottom_toTopOf="@+id/imageView1"
        app:layout_constraintEnd_toStartOf="@+id/editTextPersonName"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/editTextPersonName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="172dp"
        android:layout_marginLeft="172dp"
        android:layout_marginTop="54dp"
        android:ems="10"
        android:hint="Full Name"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/textViewName"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="92dp"
        android:layout_height="103dp"
        android:layout_marginStart="35dp"
        android:layout_marginLeft="35dp"
        android:layout_marginTop="151dp"
        android:layout_marginEnd="47dp"
        android:layout_marginRight="47dp"
        android:tag="1"
        app:layout_constraintEnd_toStartOf="@+id/imageView2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textViewName"
        tools:srcCompat="@tools:sample/avatars" />

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="92dp"
        android:layout_height="103dp"
        android:layout_marginStart="60dp"
        android:layout_marginLeft="60dp"
        android:layout_marginBottom="64dp"
        android:tag="4"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView3"
        tools:srcCompat="@tools:sample/avatars" />

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="92dp"
        android:layout_height="103dp"
        android:layout_marginStart="46dp"
        android:layout_marginLeft="46dp"
        android:layout_marginEnd="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginBottom="64dp"
        android:tag="5"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.833"
        app:layout_constraintStart_toEndOf="@+id/imageView4"
        tools:srcCompat="@tools:sample/avatars" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="92dp"
        android:layout_height="103dp"
        android:layout_marginStart="48dp"
        android:layout_marginLeft="48dp"
        android:layout_marginBottom="63dp"
        android:tag="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView1"
        tools:srcCompat="@tools:sample/avatars" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="92dp"
        android:layout_height="103dp"
        android:layout_marginStart="53dp"
        android:layout_marginLeft="53dp"
        android:layout_marginTop="80dp"
        android:layout_marginEnd="49dp"
        android:layout_marginRight="49dp"
        android:tag="3"
        app:layout_constraintEnd_toStartOf="@+id/imageView4"
        app:layout_constraintStart_toEndOf="@+id/imageView2"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        tools:srcCompat="@tools:sample/avatars" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="333dp"
        android:layout_marginLeft="333dp"
        android:layout_marginTop="41dp"
        android:layout_marginEnd="340dp"
        android:layout_marginRight="340dp"
        android:layout_marginBottom="75dp"
        android:text="Were you satisfied with our hygiene standards?"
        android:textSize="18sp"
        app:layout_constraintBottom_toTopOf="@+id/imageView3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextPersonName" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity. java -

public class MainActivity extends AppCompatActivity {

    EditText name;
    ImageView oneStar;
    ImageView twoStar;
    ImageView threeStar;
    ImageView fourStar;
    ImageView fiveStar;
    Intent intent;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        name = (EditText) findViewById(R.id.editTextPersonName);
        oneStar = (ImageView) findViewById(R.id.imageView1);
        oneStar.setTag(1);
        oneStar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String username = name.getText().toString()+"\n";
                Toast.makeText(MainActivity.this, (Integer) oneStar.getTag(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Ответы [ 4 ]

1 голос
/ 13 июля 2020

Если вы хотите получить тег и отобразить его как сообщение Toast, вместо преобразования его в объект Integer преобразуйте его в String с помощью метода .toString.

1 голос
/ 13 июля 2020

Попробуйте заменить oneStar.getTag () на view.getTag ()

0 голосов
/ 13 июля 2020

это меньше кода и меньше подверженности ошибкам, если вы просто добавите это в ImageView: android: onClick = "imageViewClick" и создадите обработчик в MainActivity следующим образом:

        public void imageViewClick(View view) {
            String username = name.getText().toString()+"\n";
            Toast.makeText(MainActivity.this, (Integer)view.getTag(),Toast.LENGTH_SHORT).show();
        }
0 голосов
/ 13 июля 2020

Второй параметр Toast.makeText является целым числом, но вы не можете передавать целое число. Это должен быть идентификатор ресурса строки (R.string.your_string). Удалите "(Целое число)", и это должно решить вашу проблему.

Я точно не знаю, каковы ваши требования, и в случае, если вы его пропустили, есть сборка шкала рейтинга в Android. Вы можете проверить руководство здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...