欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Android容器相关开发实践

发布时间:2025/3/15 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android容器相关开发实践 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先是源码下载:

http://download.csdn.net/download/qq78442761/10224716


运行截图如下:

刚开始运行:



按分数排序后:



长按选中要删除的对象



确定删后




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<Student> listData=new ArrayList();MyListAdapter listAdapter;boolean selectMode=false;@Overrideprotected 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();//获取ListviewListView listView=(ListView)findViewById(R.id.id_listview);listView.setAdapter(listAdapter);listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic 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() {@Overridepublic 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<Student> dataCopy=new ArrayList();public void sortByName() {// 对副本排序(不影响原始数据)Collections.sort(listData,new java.util.Comparator<Student>(){@Overridepublic int compare(Student o1, Student o2){return o1.name.compareTo(o2.name);}});// 通知ListView刷新显示notifyDataSetChanged();}public void sortByScore() {Collections.sort(listData,new Comparator<Student>(){@Overridepublic 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);}@Overridepublic int getCount() {return listData.size();}@Overridepublic Object getItem(int position) {return listData.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic 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]);elseimageView.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]);elseimageView.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<Student> iter=listData.iterator();while(iter.hasNext()){Student s=iter.next();if(s.selected){iter.remove();}}selectMode=false;listAdapter.notifyDataSetChanged();;} }


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

总结

以上是生活随笔为你收集整理的Android容器相关开发实践的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。