练习
多选删除,长按条目。
自定义类
package com.example.eveningpractice;
public class LinkMan {
private String name;
private String number;
private boolean statices;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public void setStatices(boolean statices) {
this.statices = statices;
}
public boolean getStatices() {
return statices;
}
@Override
public String toString() {
return "LinkMan{" +
"name='" + name + '\'' +
", number='" + number + '\'' +
", statices=" + statices +
'}';
}
}
主界面java代码
package com.example.eveningpractice;
import android.Manifest;
import android.content.ClipData;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView lv;
private List<LinkMan> list;
private LinearLayout mainLinear;
private Button mainButtonAll;
private Button mainButtonNotNll;
private Button mainButtonOpposite;
private Button mainButtonDelete;
private MyAdapter aaa;
// private List<Boolean> flag;
private boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=findViewById(R.id.ep1_listView);
mainLinear = (LinearLayout) findViewById(R.id.main_linear);
mainButtonAll = (Button) findViewById(R.id.main_button_all);
mainButtonNotNll = (Button) findViewById(R.id.main_button_notNll);
mainButtonOpposite = (Button) findViewById(R.id.main_button_opposite);
mainButtonDelete = (Button) findViewById(R.id.main_button_delete);
// flag=new ArrayList<>();
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
requestPermissions(new String[]{
Manifest.permission.READ_CONTACTS},104);
}else{
readLinkMan();
}
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
mainLinear.setVisibility(View.VISIBLE);
if( !flag){
flag=true;
aaa = new MyAdapter(MainActivity.this, list, flag);
list=aaa.getList();
lv.setAdapter(aaa);
}
aaa.notifyDataSetChanged();
return true;
}
});
}
// private long ntime;
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// long time=0;
// if( keyCode== KeyEvent.KEYCODE_BACK&&ntime-time>=2000){
// time=System.currentTimeMillis();
// ntime=time;
// mainLinear.setVisibility(View.INVISIBLE);
// }else if( keyCode==KeyEvent.KEYCODE_BACK&&ntime-time<=2000) {
// return super.onKeyDown(keyCode, event);
// }
// return false;
// }
@Override
public void onRequestPermissionsResult(