android,view.settag(id,value)

本文介绍如何在 Android 的 res/values 目录下创建 XML 文件来定义 ID 类型资源,并展示了如何在代码中通过 View 的 setTag 方法引用这些 ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在res/value下新建xml,声明id类型的参数

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="id1" type="id"/>
</resources>

2.调用

holder.itemView.setTag(R.id.id1,position);

 

代码如下,每次只有一个的头像可以变成星星,找到原因并改错:package com.example.myapplication; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.core.app.ActivityCompat; import java.util.List; public class PhoneAdapter extends BaseAdapter { private List<Person> data;//需要好几个东西,比如图像,标题之类话用自定义类型List<Animal>,每个项所需数据的集合 private Context mContext; //传入的是Activity所以用Context,Activity本身是一个Context static class ViewHolder{ TextView name; TextView number; Button detail_button; ImageView pic; } // private ActivityResultLauncher<Intent> resultLauncher; public PhoneAdapter(Context mContext, List<Person> data) { super(); this.mContext = mContext; this.data = data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { PhoneAdapter.ViewHolder viewHolder=null; if(convertView == null){ convertView = LayoutInflater.from(mContext).inflate(R.layout.phone_item,parent,false); viewHolder=new PhoneAdapter.ViewHolder();//只生成一次viewholder viewHolder.name=(TextView) convertView.findViewById(R.id.name); viewHolder.number=(TextView) convertView.findViewById(R.id.number); viewHolder.pic=(ImageView)convertView.findViewById(R.id.pic); Person person =(Person)data.get(position); if (person.isStar()) { viewHolder.pic.setImageResource(R.mipmap.ic_star); } viewHolder.name.setText(data.get(position).getName()); viewHolder.number.setText(data.get(position).getNumber()); convertView.setTag(viewHolder);//给view添加一个额外的数据 } else viewHolder=(PhoneAdapter.ViewHolder)convertView.getTag(); convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setAction(Intent.ACTION_DIAL); //"tel:"为固定格式,后面平接手机号 intent.setData(Uri.parse("tel:" + data.get(position).getNumber())); mContext.startActivity(intent);//要用context启动 } }); Button detail_button=convertView.findViewById(R.id.detail_button); detail_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(mContext,DetailActivity.class); intent.putExtra("name",data.get(position).name); intent.putExtra("number",data.get(position).number); intent.putExtra("position",String.valueOf(position)); mContext.startActivity(intent); } }); return convertView; } }
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值