在Android视图上下文类中设置实例变量
我正在尝试创建一个具有多个视图的动态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
<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
我需要设置thiscategoryId
的值,并在稍后的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);