Android容器相关开发实践
发布日期:2021-06-30 10:51:47 浏览次数:2 分类:技术文章

本文共 6444 字,大约阅读时间需要 21 分钟。

首先是源码下载:

运行截图如下:

刚开始运行:

按分数排序后:

长按选中要删除的对象

确定删后

IDE为Android Studio 2.3.3

内容包括:

1.点击

2.长按

3.使用Adapter

MainActivity源码如下:

package example.demo4;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;public class MainActivity extends AppCompatActivity {    //数据源    ArrayList
listData=new ArrayList(); MyListAdapter listAdapter; boolean selectMode=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //数据 listData.add(new Student("QiuQiu",false,100)); listData.add(new Student("TuiTui",false,98)); listData.add(new Student("ZXM",true,59)); listData.add(new Student("MeiY",true,99)); listData.add(new Student("SB",true,58)); listAdapter=new MyListAdapter(); //获取Listview ListView listView=(ListView)findViewById(R.id.id_listview); listView.setAdapter(listAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView
parent, View view, int position, long id) { Student s = (Student) listAdapter.getItem(position); Toast.makeText(MainActivity.this, "点击了" + s.name, Toast.LENGTH_SHORT).show(); if(selectMode){ Student S=(Student)listAdapter.getItem(position); S.selected=!S.selected; listAdapter.notifyDataSetChanged(); } } }); listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView
parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "不要长按", Toast.LENGTH_SHORT).show(); selectMode=true; //选中这一项 Student s=(Student)listAdapter.getItem(position); s.selected=true; listAdapter.notifyDataSetChanged(); return true; } }); } public void doSortByName(View view){ listAdapter.sortByName(); } public void doSortByScore(View view){ listAdapter.sortByScore(); } private class Student{ public String name; public boolean sex; public boolean selected;//是否选中 public int score; public Student(String name,boolean sex,int score){ this.name=name; this.sex=sex; this.score=score; } } //写listview的时候总会写一个适配器 private class MyListAdapter extends BaseAdapter{ Drawable[] icons=new Drawable[2]; Drawable[] iconsel=new Drawable[2]; //数据副本 ArrayList
dataCopy=new ArrayList(); public void sortByName() { // 对副本排序(不影响原始数据) Collections.sort(listData,new java.util.Comparator
(){ @Override public int compare(Student o1, Student o2) { return o1.name.compareTo(o2.name); } }); // 通知ListView刷新显示 notifyDataSetChanged(); } public void sortByScore() { Collections.sort(listData,new Comparator
(){ @Override public int compare(Student o1, Student o2) { if(o1.score > o2.score) return 1; else if(o1.score== o2.score) return 0; else return -1; } }); notifyDataSetChanged(); } public MyListAdapter(){ icons[0]=MainActivity.this.getDrawable(R.drawable.img_woman); icons[1]=getDrawable(R.drawable.img_man); iconsel[0]=getDrawable(R.drawable.img_uncheck); iconsel[1]=getDrawable(R.drawable.img_check); } @Override public int getCount() { return listData.size(); } @Override public Object getItem(int position) { return listData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { //创建控件 if(convertView==null){ convertView=getLayoutInflater().inflate(R.layout.list_item_student,parent,false); } //获取数据 Student data=(Student)getItem(position); //显示数据 TextView textView=(TextView)convertView.findViewById(R.id.id_textView); textView.setText(data.name+"分数:"+data.score); ImageView imageView=(ImageView)convertView.findViewById(R.id.id_imageView); if(data.sex) imageView.setImageDrawable(icons[1]); else imageView.setImageDrawable(icons[0]); //选择模式 imageView = (ImageView)convertView.findViewById(R.id.id_icon_select); if(!selectMode){ imageView.setVisibility(View.GONE); } else{ imageView.setVisibility(View.VISIBLE); if(data.selected) imageView.setImageDrawable(iconsel[1]); else imageView.setImageDrawable(iconsel[0]); } return convertView; } } public void cancelSelecting(View view){ //清除选中状态 for(Student s:listData){ s.selected=false; } //退出选择模式 selectMode=false; listAdapter.notifyDataSetChanged(); } public void removeSelected(View view){ Iterator
iter=listData.iterator(); while(iter.hasNext()){ Student s=iter.next(); if(s.selected){ iter.remove(); } } selectMode=false; listAdapter.notifyDataSetChanged();; }}

这里,图片和界面啥的,都不介绍了,此程序很简单,入门级,在此都不详细介绍。有兴趣的同学,下载上面链接的源码

转载地址:https://it1995.blog.csdn.net/article/details/79167628 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android studio如何更改应用程序的图标以及名称
下一篇:WEB安全基础-文件下载漏洞以及文件包含漏洞演示

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月11日 00时33分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章