黑名单号码页面

2023-12-30 00:18
文章标签 页面 号码 黑名单

本文主要是介绍黑名单号码页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.点击按钮能弹出对话框,并保存输入的号码

2.点击listview条目里的删除按钮,删除一个条目,自动更新UI

3.根据手指滚动listview到底端,自动加载数据

package com.example.mobilesafe;import java.util.ArrayList;
import java.util.List;
import java.util.Random;import javax.crypto.spec.IvParameterSpec;import com.example.mobilesafe.bean.blackNumberBean;
import com.example.mobilesafe.db.dao.blackNumberDao;import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;public class blackNumberActivity extends Activity {private int mode = 1;private List<blackNumberBean> al;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_black_number);initAdd();initListView();}/*** 展示黑名单号码*/private Handler mhHandler = new Handler() {private myAdapter myAdapter;public void handleMessage(android.os.Message msg) {if (myAdapter == null) {// 给listview设置适配器myAdapter = new myAdapter();lv_blackNumber_List.setAdapter(myAdapter);} else {// 更新listviewmyAdapter.notifyDataSetChanged();}};};private ListView lv_blackNumber_List;/*** 初始化适配器*/private void initListView() {lv_blackNumber_List = (ListView) findViewById(R.id.lv_blackNumber_List);initData();// 设置自动加载数据事件lv_blackNumber_List.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {if (scrollState == OnScrollListener.SCROLL_STATE_IDLE&& lv_blackNumber_List.getMaxScrollAmount() >= al.size() - 1) {blackNumberDao dao = blackNumberDao.getInstence(getApplicationContext());List<blackNumberBean> query = dao.query(al.size());al.addAll(query);mhHandler.sendEmptyMessage(0);}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stub}});}// 适配器类private class myAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn al.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn al.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(final int position, View convertView,ViewGroup parent) {// 优化适配器if (convertView == null) {// 得到控件convertView = View.inflate(getApplicationContext(),R.layout.blacknumber_item, null);//ViewHolder viewHolder = new ViewHolder();viewHolder.phone = (TextView) convertView.findViewById(R.id.tv_blackNumber_phone);viewHolder.mode = (TextView) convertView.findViewById(R.id.tv_blackNumber_mode);viewHolder.del = (ImageView) convertView.findViewById(R.id.iv_delBlackNumber);convertView.setTag(viewHolder);}ViewHolder viewHolder = (ViewHolder) convertView.getTag();final blackNumberBean bnb = al.get(position);viewHolder.phone.setText(bnb.phone);String mode = "短信";int intMode = Integer.parseInt(bnb.mode);switch (intMode) {case 1:mode = "短信";break;case 2:mode = "电话";break;case 3:mode = "全部";break;default:break;}viewHolder.mode.setText(mode);// 设置listview每个条目里面的点击事件viewHolder.del.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {blackNumberDao dao = blackNumberDao.getInstence(getApplicationContext());dao.delete(bnb.phone + "");al.remove(position);// 更新适配器,和显示数据mhHandler.sendEmptyMessage(0);}});return convertView;}}private class ViewHolder {public TextView phone;public TextView mode;public ImageView del;}/*** 初始化显示数据*/private void initData() {new Thread(new Runnable() {@Overridepublic void run() {// 第一次得到数据blackNumberDao numberDao = blackNumberDao.getInstence(getApplicationContext());al = numberDao.query(0);mhHandler.sendEmptyMessage(0);}}).start();}/*** 点击按钮,添加号码到黑名单*/private void initAdd() {Button bt_addBlackNumber = (Button) findViewById(R.id.bt_addBlackNumber);bt_addBlackNumber.setOnClickListener(new OnClickListener() {public void onClick(View v) {showDialog();}});}/*** 展示对话框*/protected void showDialog() {// 建立对话框Builder builder = new AlertDialog.Builder(this);final AlertDialog dialog = builder.create();View view = View.inflate(getApplicationContext(),R.layout.dialog_add_blacknumber, null);dialog.setView(view, 0, 0, 0, 0);dialog.show();final EditText et_put_blackNumber = (EditText) view.findViewById(R.id.et_put_blackNumber);Button bt_submit_yes = (Button) view.findViewById(R.id.bt_submit_yes);Button bt_submit_no = (Button) view.findViewById(R.id.bt_submit_no);final RadioGroup rg_mode = (RadioGroup) view.findViewById(R.id.rg_mode);rg_mode.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId) {case R.id.rb_sms:mode = 1;Log.d("单选钮", 1 + "");break;case R.id.rb_phone:mode = 2;Log.d("单选钮", 2 + "");break;case R.id.rb_all:mode = 3;Log.d("单选钮", 3 + "");break;default:break;}}});// 设置对话框确定按钮,保存数据,并关闭对话框bt_submit_yes.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {final String phone = et_put_blackNumber.getText().toString();if (TextUtils.isEmpty(phone)) {Toast.makeText(getApplicationContext(), "请输入号码", 0).show();return;}blackNumberDao numberDao = blackNumberDao.getInstence(getApplicationContext());numberDao.insert(phone, mode + "");blackNumberDao dao = blackNumberDao.getInstence(getApplicationContext());al = dao.query(0);mhHandler.sendEmptyMessage(0);dialog.dismiss();}});// 设置取消按钮,关闭对话框bt_submit_no.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});}
}

这篇关于黑名单号码页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/551144

相关文章

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

Weex入门教程之3,使用 Vue 开发 Weex 页面

环境安装 在这里简略地介绍下,详细看官方教程 Node.js 环境 Node.js官网 通常,安装了 Node.js 环境,npm 包管理工具也随之安装了。因此,直接使用 npm 来安装 weex-toolkit。 npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。