在Android视图上下文类中设置实例变量

在Android视图上下文类中设置实例变量,android,Android,我正在尝试创建一个具有多个视图的动态android布局。视图的数量取决于列表中的项目 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout_category" android:layout_width

我正在尝试创建一个具有多个视图的动态android布局。视图的数量取决于列表中的项目

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/layout_category"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_margin="5dp"
          android:layout_marginBottom="5px"
          android:layout_marginTop="5px"
          android:orientation="vertical"
          android:padding="5dp" tools:context=".CategoryActivity">

<ImageView
    android:id="@+id/img_category"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:foregroundGravity="center"
    android:src="@android:drawable/ic_menu_view"/>

<TextView
    android:id="@+id/text_category"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Category"
    android:textColor="#000000"
    android:layout_alignParentStart="true"/></LinearLayout>
视图
CategoryActivity
的上下文类有一个实例变量
categoryId

我需要设置this
categoryId
的值,并在稍后的onClick操作期间引用该值,然后采取适当的操作

在CategoryActivity课程中,我已经适当地提到了

setContentView(R.layout.activity\u category\u视图)


我尝试了各种方法,但仍然无法解决问题,我永远无法解决

对于动态视图,必须使用
getTag
setTag
方法在视图中存储和检索数据。根据您的问题,请参阅以下代码:

View view = getLayoutInflater().inflate(R.layout.activity_category_view, null);
view.setTag(categoryId);
view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int cat_id=(Integer)view.getTag();
            // do whatever you want to do further with it
        }
    });
mainLayout.addView(view);

我希望这会对你有所帮助。

你可以做类似的事情

android:tag="MyInstanceVariable" 

<ImageView
    android:id="@+id/img_category"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:tag="MyInstanceVariable" 
    android:foregroundGravity="center"
    android:src="@android:drawable/ic_menu_view"/>
您可以访问java文件,如

  String tag = (String) iv.getTag();
  String tag = (String) iv.getTag(R.String.Tag);

正是我想要的。。。工作!谢谢,谢谢!我试试这个
iv.setTag("MyInstanceVariable");
iv.setTag(R.String.Tag,"MyInstanceVariable");  //For multiple Tag
  String tag = (String) iv.getTag();
  String tag = (String) iv.getTag(R.String.Tag);