android view setTag
时间: 2023-11-02 22:06:00 浏览: 51
setTag() 是 Android View 类中的一个方法,它可以用来给控件附加一些额外的信息。通过 setTag() 方法,我们可以将任意类型的对象与一个 View 关联起来,并将其存储在 View 中以供后续使用。这在很多场合下都非常有用。
setTag() 方法接收两个参数,第一个参数是一个唯一的标识符,可以用来区分不同的标签,第二个参数是需要附加的对象。
举个例子,假设我们有一个名为 "content" 的字符串对象,我们可以通过以下代码将其附加到一个 View 中:
view.setTag("content", "这是内容");
通过调用 view.getTag("content") 方法,我们可以在需要的时候获取到这个对象。
相关问题
view.settag
view.setTag()是一个方法,用于在Android中设置视图的标记。可以使用setTag()方法将任何类型的对象与视图相关联,以便在需要时可以检索该对象。这个标记通常用于存储有关视图的信息,例如在ListView中存储行号或在ImageView中存储图像路径等。通过调用view.getTag()方法可以检索与视图关联的标记。
android 仿淘宝购物车list view实例
好的,以下是一个简单的Android仿淘宝购物车的ListView实例:
1. 布局文件:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tv_empty_cart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="购物车空空如也~"
android:textSize="20sp"
android:visibility="gone" />
</LinearLayout>
```
2. 条目布局文件item_cart.xml:
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_cart_item"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_margin="10dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/tv_cart_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:layout_toEndOf="@id/iv_cart_item"
android:text="商品名称"
android:textColor="#000000"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_cart_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_cart_name"
android:layout_marginTop="10dp"
android:layout_toEndOf="@id/iv_cart_item"
android:text="¥0.00"
android:textColor="#ff0000"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_cart_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/iv_cart_item"
android:layout_marginTop="10dp"
android:layout_toEndOf="@id/iv_cart_item"
android:text="数量:0"
android:textColor="#000000"
android:textSize="14sp" />
<Button
android:id="@+id/btn_cart_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:text="删除" />
</RelativeLayout>
```
3. ListView的Adapter:
```
public class CartAdapter extends BaseAdapter {
private Context mContext;
private List<CartItem> mCartItemList;
public CartAdapter(Context context, List<CartItem> cartItemList) {
mContext = context;
mCartItemList = cartItemList;
}
@Override
public int getCount() {
return mCartItemList.size();
}
@Override
public Object getItem(int position) {
return mCartItemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_cart, parent, false);
viewHolder = new ViewHolder();
viewHolder.ivCartItem = convertView.findViewById(R.id.iv_cart_item);
viewHolder.tvCartName = convertView.findViewById(R.id.tv_cart_name);
viewHolder.tvCartPrice = convertView.findViewById(R.id.tv_cart_price);
viewHolder.tvCartCount = convertView.findViewById(R.id.tv_cart_count);
viewHolder.btnDelete = convertView.findViewById(R.id.btn_cart_delete);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final CartItem cartItem = mCartItemList.get(position);
viewHolder.ivCartItem.setImageResource(cartItem.getImageId());
viewHolder.tvCartName.setText(cartItem.getName());
viewHolder.tvCartPrice.setText(String.format("¥%.2f", cartItem.getPrice()));
viewHolder.tvCartCount.setText(String.format("数量:%d", cartItem.getCount()));
viewHolder.btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCartItemList.remove(position);
notifyDataSetChanged();
// 更新本地存储的购物车数据
updateCartData(mCartItemList);
}
});
return convertView;
}
private static class ViewHolder {
ImageView ivCartItem;
TextView tvCartName;
TextView tvCartPrice;
TextView tvCartCount;
Button btnDelete;
}
// 更新本地存储的购物车数据
private void updateCartData(List<CartItem> cartItemList) {
// TODO
}
}
```
4. 在Activity中初始化ListView和Adapter,并绑定数据:
```
public class CartActivity extends AppCompatActivity {
private ListView mListView;
private TextView mTvEmptyCart;
private List<CartItem> mCartItemList;
private CartAdapter mCartAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
mListView = findViewById(R.id.list_view);
mTvEmptyCart = findViewById(R.id.tv_empty_cart);
// 从本地存储中读取购物车数据
mCartItemList = readCartData();
if (mCartItemList.size() > 0) {
mCartAdapter = new CartAdapter(this, mCartItemList);
mListView.setAdapter(mCartAdapter);
} else {
mListView.setVisibility(View.GONE);
mTvEmptyCart.setVisibility(View.VISIBLE);
}
}
// 从本地存储中读取购物车数据
private List<CartItem> readCartData() {
// TODO
return new ArrayList<>();
}
}
```
希望这个实例能够帮到您!