100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ListView和条目点击事件 条目长按事件

ListView和条目点击事件 条目长按事件

时间:2023-11-08 11:52:10

相关推荐

ListView和条目点击事件 条目长按事件

step1:创建一个LinearLayout线性布局,属性值为vertical

里面写一个ListView列表控件

<ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent" ></ListView>

step2:回到MainActivity页面找到ListView这个控件

ListView listView = (ListView) findViewById(R.id.listView);

step3:给ListView设置适配器,(如果不设置的话是看不到列表的,并且没有数据也看不到),适配器,也就是创建一个类

listView.setAdapter(new LVAdapter(MainActivity.this, list));

然后回到activity写数据!!!!! 【这里的数据再正常情况下是要用网络获取,在这里就使用静态数据了!】

在这里还要创建一个bean的实体类,这里创建的是user对象,进行封装就可以了!

final List<User> list = new ArrayList<User>();for (int i = 0; i < 30; i++) {list.add(new User("卷猫"+i, "女", 18, R.drawable.ic_launcher));}

step4:继承BaseAdapter(同时要实现四个方法)

step5:写属性

private Context mContext;// 必须要写的属性,不然无法创建视图private List<User> list;// 数据必须要有 ,不然报错空指针

step6:写构造方法(传数据),用快捷键shift+alt+s,创建就好了【只需要一个有参构造】

step7:需要把数据传到适配器中

listView.setAdapter(new LVAdapter(MainActivity.this, list));

step8:然后回到adapter适配器哪里!设置条目个数(即继承父类时重写的第一个方法)

public int getCount() {// step8:设置条目个数return list.size();}

step9:设置条目(第二个方法)——这里的意思就是用过position即集合的index索引来获取一个对象实体

public Object getItem(int position) {// 设置条目return list.get(position);}

step10:获取条目id(第三个)

public long getItemId(int position) {// step10:设置条目idreturn position;}

step11:设置视图(创建一个layout的xml视图){这里是在第四个方法里面写,也要把返回值写成convertView}

!!!!这一步有点难

public View getView(int position, View convertView, ViewGroup parent) {// step11:设置视图(创建一个laylout的xml)【可以运行了!!!!!】convertView = View.inflate(mContext, R.layout.item, null);

这里写第二个参数的时候,导包要导自己的包

❤:做到这来的时候需要创建一个layout,这里的inflate方法的param2是要放一个list的模板布局

step12:找控件(通过convertView找)

ImageView tx = (ImageView) convertView.findViewById(R.id.touxiang);TextView name = (TextView) convertView.findViewById(R.id.name);TextView gender = (TextView) convertView.findViewById(R.id.gender);TextView age = (TextView) convertView.findViewById(R.id.age);

step13:设置内容——首先得到我们想要的对象

User user = list.get(position);给imageView设置图片 tx.setImageResource(R.drawable.图片名字)tx.setImageResource(user.getTx());name.setText(user.getName());gender.setText(user.getGender());age.setText(""+user.getAge());//因为年龄是int型 不加“”可能会报错return convertView;

step14:设置条目的点击事件(在activity中)

listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, list.get(position).toString(), Toast.LENGTH_SHORT).show();}});

step15:条目的长按事件

listView.setOnItemLongClickListener(new OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this, "don't click me! I'm not a person!!!!"+position, Toast.LENGTH_SHORT).show();return false;}});

这样就可以运行了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。