文档章节

listview Item 中 有多个要点击的地方:该怎么处理

Mstart
 Mstart
发布于 2016/06/22 20:19
字数 588
阅读 41
收藏 3

1.一个接口:

//重点
public interface ListItemClickHelp {

    void onClick(View item, View widget, int position, int which);
}

2.适配器:

package mstart.yeketech.com.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.List;

import mstart.yeketech.com.tools.BeanNba;
import mstart.yeketech.com.tools.ListItemClickHelp;
import mstart.yeketech.com.yeke.R;


public class MyNbaAdapter extends BaseAdapter {
    private List<BeanNba> list;
    private LayoutInflater inflater;
    private Context context;
    //private TextView duration_texts;
    private ListItemClickHelp callback;
    public MyNbaAdapter(Context context, List<BeanNba> list,ListItemClickHelp callback) {
        inflater = LayoutInflater.from(context);
        this.context = context;
        this.list = list;
        this.callback=callback;
    }


    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }




    @Override
    public View getView(int position, View convertView, final ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHoldernba holder;

        if (convertView == null) {
            holder = new ViewHoldernba();
            convertView = inflater.inflate(R.layout.nbaitem, null);
            holder.player1 = (TextView) convertView
                    .findViewById(R.id.nba_player1);
            holder.player2 = (TextView) convertView
                    .findViewById(R.id.nba_player2);
            holder.player1logo = (ImageView) convertView
                    .findViewById(R.id.nba_player1logo);
            holder.player2logo = (ImageView) convertView
                    .findViewById(R.id.nba_player2logo);
            holder.m_time = (TextView) convertView
                    .findViewById(R.id.nba_mtime);
            holder.score = (TextView) convertView
                    .findViewById(R.id.nba_score);
            holder.link1url = (TextView) convertView
                    .findViewById(R.id.nba_link1url);
            holder.link2url = (TextView) convertView
                    .findViewById(R.id.nba_link2url);

            convertView.setTag(holder);
        } else {
            holder = (ViewHoldernba) convertView.getTag();
        }
        holder.player1.setText("主队:"+list.get(position).getPlayer1().toString());
        holder.player2.setText("客队:"+list.get(position).getPlayer2().toString());
        holder.m_time.setText("比赛时间:"+list.get(position).getM_time().toString());
        holder.score.setText("比分:"+list.get(position).getScore().toString());
        holder.link1url.setText("视频集锦:"+list.get(position).getLink1url().toString());
        holder.link2url.setText("数据统计:"+list.get(position).getLink2url().toString());
        Picasso.with(context).load(list.get(position).getPlayer1logo().toString()).placeholder(R.mipmap.news).error(R.mipmap.news).into(holder.player1logo);
        Picasso.with(context).load(list.get(position).getPlayer2logo().toString()).placeholder(R.mipmap.news).error(R.mipmap.news).into(holder.player2logo);
//重点:
        final View view = convertView;
        final int p = position;
        final int one = holder.link1url.getId();
        holder.link1url.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                callback.onClick(view, parent, p, one);
            }
        });
        final int two = holder.link2url.getId();
        holder.link2url.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                callback.onClick(view, parent, p, two);
            }
        });
        return convertView;
    }
}

class ViewHoldernba {
    TextView player1, player2,m_time,score,link1url,link2url;
    ImageView player1logo, player2logo;

}

 

3.主函数:

public class NbaActivity extends AutoLayoutActivity implements ListItemClickHelp{
private ImageView back;
    private EditText put;
    private Button check;
    private TextView title;


    AbHttpUtil abHttpUtil = null;
    private AbPullToRefreshView mAbPullToRefreshView = null;
    private MyNbaAdapter myadapter;
    private ArrayList<BeanNba> mlist = new ArrayList<BeanNba>();
    private BeanNba bean;
    private ListView mlistView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nba);
        back = (ImageView) findViewById(R.id.nba_back);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                NbaActivity.this.finish();
            }
        });
        mlistView= (ListView) findViewById(R.id.nba_listview);
        myadapter = new MyNbaAdapter(NbaActivity.this, mlist,NbaActivity.this);
        mlistView.setAdapter(myadapter);
//这个必不可少:
      mlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(NbaActivity.this,"123",Toast.LENGTH_SHORT).show();
          }
      });


        put= (EditText) findViewById(R.id.nba_put);
        check= (Button) findViewById(R.id.nba_check);
        check.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getdata();
            }
        });


        title= (TextView) findViewById(R.id.nba_saijiname);
    }
//加载网络数据的:
    public void getdata() {
        

    }

//这里是重点:两个地方要点击(视频集锦:和数据统计:)。不是整个点击()
    @Override
    public void onClick(View item, View widget, int position, int which) {
        switch (which) {
            case R.id.nba_link1url:
                Intent intent = new Intent(NbaActivity.this, WebActivity.class);
                Bundle bundle=new Bundle();
                String url =mlist.get(position).getLink1url();
                Log.e("+++url",url);
                bundle.putString("weburl",url);
                intent.putExtras(bundle);
                startActivity(intent);
                break;
            case R.id.nba_link2url:
                Intent intent2 = new Intent(NbaActivity.this, WebActivity.class);
                Bundle bundle2=new Bundle();
                String url2 =mlist.get(position).getLink2url();
                bundle2.putString("weburl",url2);
                intent2.putExtras(bundle2);
                startActivity(intent2);
                break;
            default:
                break;
        }
    }
}

 

© 著作权归作者所有

Mstart
粉丝 10
博文 62
码字总数 17890
作品 0
南通
程序员
私信 提问
你还在用notifyDataSetChanged?

想到发这篇帖子是源于我的上一篇帖子#Testin杯#多线程断点续传后台下载 。 帖子中讲述的项目使用了listView这个控件,而且自定义了adapter。在更新item的进度条时发现每次使用notifyDataSet...

artshell
2014/09/27
216
0
Android 面试题之Listview(不断更新)

以下所有内容以及实用的知识点已被整理app,欢迎下载 下载方式一:酷安商城搜索Android_程序猿即可下载 下载方式二:扫描下载二维码进行下载 image.png Android 面试题之J2EE(不断更新) An...

蛋蛋松
2017/12/05
0
0
安卓 自定义listview 多空间多点击事件的问题~

布局1 布局2 布局3 布局4 布局5 布局6 ... 如上图,表格 代表listview 每一行代表一个item~~ 每一个item中有3个小的布局~~ 要求是 用户点击布局x 能获取到布局x 是在整个listview中第几个ite...

忧郁麦芽
2013/08/22
855
4
Flutter 手势处理 & Hero 动画

App Store可以说是苹果业内设计的标杆了。 我们就来简单的实现一下 App Store的首页里其中的一个小功能。 先看图: 可以看到,这里有两点需要关注一下: 在点击这个卡片的时候会缩放,松开或...

爱小丽0427
05/26
0
0
Android面试题:Listview

今日,看到群里朋友发的一部分面试题,决定把这这些面试题的答案写下来,如下: 1、ListView怎么和ScrollView兼容? ok 2、ViewPager无限轮播图片 3、out of memory内存溢出怎么解决 4、三级...

微笑的江豚
2016/06/22
127
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部