我对膨胀视图的点击监听器有问题。我想为每个可点击的内容添加不同的额外内容。我怎样才能实现这一目标?这是我膨胀的xml文件
<RelativeLayout
android:id="@+id/cat_item"
android:layout_width="match_parent"
android:layout_height="280dp"
android:layout_marginTop="20dp"
android:background="@drawable/desserts"
android:clickable="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/header" >
<TextView
android:id="@+id/cat_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:text=""
android:textColor="@color/white"
android:textSize="30sp" />
</LinearLayout>
</RelativeLayout>
`这是我的java类
private void setDetails() {
final int size = Parser.getSizeOfCategoryList();
for (int i = 0; i < size; i++) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View item = inflater.inflate(R.layout.category_item, null);
itemTitle = (TextView) item.findViewById(R.id.cat_item_title);
itemTitle.setText(Parser.getCategoryName(i));
btnCategory = (RelativeLayout) item.findViewById(R.id.cat_item);
btnCategory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext,
SubCategoryActivity.class);
intent.putExtra("categoryName", Parser.getCategoryName(i));
startActivity(intent);
overridePendingTransition(R.anim.activity_out_from_left,
R.anim.activity_in_from_right);
}
});
switch (i % 3) {
case 0:
columnOne.addView(item);
break;
case 1:
columnTwo.addView(item);
break;
case 2:
columnThree.addView(item);
break;
default:
break;
}
}
}
实际上我想把我从Arraylist获得的类别名称添加到意图中。我知道“我”必须是最终的,所以这给出了错误,但我试图做出类似的东西。我怎样才能做到这一点?
任何帮助将不胜感激
答案 0 :(得分:0)
您可以将i
复制到最终变量并使用它。
final int finalI = i;
@Override
public void onClick(View v) {
intent.putExtra("categoryName", Parser.getCategoryName(finalI));
}