Sweetbreads 2021-05-16 07:38 采纳率: 50%
浏览 12
已采纳

ListView点击后全部样式生效,而不是单行生效。

class MyAdapter extends BaseAdapter {

    private Context context;
    private LayoutInflater layoutInflater;

    public MyAdapter(Context context) {
        this.context = context;
        this.layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return 8;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    static class ViewHolder {
        public ImageView imageView;
        public TextView tvTitle, tvDate, tvContext;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            convertView = layoutInflater.inflate(R.layout.layout_list_item, null);
            holder = new ViewHolder();
            holder.imageView = convertView.findViewById(R.id.iv);
            holder.tvTitle = convertView.findViewById(R.id.tv_title);
            holder.tvDate = convertView.findViewById(R.id.tv_date);
            holder.tvContext = convertView.findViewById(R.id.tv_context);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        //给控件赋值
        holder.tvTitle.setText("高山");
        holder.tvDate.setText("1984-01-01");
        holder.tvContext.setText("喜马拉雅");

        String picURL = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=100529321,758151142&fm=26&gp=0.jpg";
        Glide.with(context).load(picURL).disallowHardwareConfig().into(holder.imageView);

        return convertView;
    }
}

Activity:

public class ListViewActivity extends Activity {

    private ListView lv_1;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        lv_1 = findViewById(R.id.lv_1);
        lv_1.setAdapter(new MyAdapter(this));
}

布局:

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lv_1"
        android:background="@drawable/selector_lv"/>

样式:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/colorGray" />
    <item android:state_focused="true" android:drawable="@color/colorGray" />
    <item android:state_selected="true" android:drawable="@color/colorGray" />
    <item android:drawable="@color/colorBlack"/>

</selector>

效果:

这个问题怎么解决,萌新刚写Android,求大佬指导指导

 

展开全部

  • 写回答

1条回答 默认 最新

  • Sweetbreads 2021-05-16 08:21
    关注

    属性使用错误改用

    android:listSelector="@drawable/selector_lv"
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@color/colorBlack" />
    
    </selector>

    即可,不要使用background属性

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部