提问者:小点点

如何在Android Studio中为imageView分配一个整数值?


我正在创建一个反馈应用程序,用户必须根据他/她的经验点击5个图像视图(1-5评级)之一。 我的主要目的是从imageView单击中提取该等级的整数值,并将其推送到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>

维护性。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();
            }
        });
    }
}

共3个答案

匿名用户

尝试用View.getTag()替换OneStar.getTag()

匿名用户

如果希望获取标记并将其显示为Toast消息,则使用。toString方法将其转换为字符串,而不是将其强制转换为整数对象。

匿名用户

Toast.MakeText的第二个参数是interger,但不能传递任何整数。 它必须是字符串(r.string.your_string)的资源Id。 去掉“(整数)”,它应该能解决你的问题。

我不知道你的要求是什么,万一你错过了,有一个内置在评级巴林安卓。 你可以在这里查看教程