android软件简约记账app开发day07-备注界面完善

##

昨天我们已经绘制了备注页面,今天来用Java代码组装完善一下。

首先我们新建BeiZhuDialog类关联备注页面,并且实现点击接口

在该类中我们获得界面的所有组件,并且实现onclick方法,并且弹出键盘、绘制显示界面,完善显示效果,

package com.open.tally.util;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;

import androidx.annotation.NonNull;

import com.open.tally.R;

public class BeiZhuDialog extends Dialog implements View.OnClickListener {
   EditText et;
   Button cancelBtn,ensureBtn;
   OnEnsureListener onEnsureListener;
   // 设定回调接口的方法
   public void setOnEnsureListener(OnEnsureListener onEnsureListener) {
       this.onEnsureListener = onEnsureListener;
  }

   public BeiZhuDialog(@NonNull Context context) {
       super(context);
  }

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.dialog_beizhu);//设置对话框显示布局
       et = findViewById(R.id.dialog_beizhu_et);
       cancelBtn = findViewById(R.id.dialog_beizhu_btn_cancel);
       ensureBtn = findViewById(R.id.dialog_beizhu_btn_ensure);
       cancelBtn.setOnClickListener(this);
       ensureBtn.setOnClickListener(this);
  }
   public interface OnEnsureListener{
       public void onEnsure();
  }

   @Override
   public void onClick(View v) {
       switch (v.getId()) {
           case R.id.dialog_beizhu_btn_cancel:
               cancel();
               break;
           case R.id.dialog_beizhu_btn_ensure:
               if (onEnsureListener!=null) {
                   onEnsureListener.onEnsure();
              }
               break;
      }
  }

//   获取输入数据的方法
   public String getEditText(){
       return et.getText().toString().trim();
  }
   /* 设置Dialog的尺寸和屏幕尺寸一致*/
   public void setDialogSize(){
//       获取当前窗口对象
       Window window = getWindow();
//       获取窗口对象的参数
       WindowManager.LayoutParams wlp = window.getAttributes();
//       获取屏幕宽度
       Display d = window.getWindowManager().getDefaultDisplay();
       wlp.width = (int)(d.getWidth());  //对话框窗口为屏幕窗口
       wlp.gravity = Gravity.BOTTOM;
       window.setBackgroundDrawableResource(android.R.color.transparent);
       window.setAttributes(wlp);
       handler.sendEmptyMessageDelayed(1,100);
  }

   Handler handler = new Handler(){
       @Override
       public void handleMessage(@NonNull Message msg) {
           //自动弹出软键盘的方法
           InputMethodManager inputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
           inputMethodManager.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
      }
  };
}

在BaseRecordFragment类中添加弹出对话框方法,

/* 弹出备注对话框*/
public  void showBZDialog(){
   final BeiZhuDialog dialog = new BeiZhuDialog(getContext());
   dialog.show();
   dialog.setDialogSize();
   dialog.setOnEnsureListener(new BeiZhuDialog.OnEnsureListener() {
       @Override
       public void onEnsure() {
           String msg = dialog.getEditText();
           if (!TextUtils.isEmpty(msg)) {
               beizhuTv.setText(msg);
               accountBean.setBeizhu(msg);
          }
           dialog.cancel();
      }
  });
}

好了,明天见,明天见、、、、、、、、

android软件简约记账app开发day07-备注界面完善的更多相关文章

  1. android软件简约记账app开发day06-将记账条目添加到数据库并且绘制备注页面

    android软件简约记账app开发day06-将记账条目添加到数据库并且绘制备注页面 首先写添加到数据库 在DBOpenHelper中添加创建记账表的语句 //创建记账表 sql = "c ...

  2. android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标。

    android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标. 今天来写主界面头信息的展示,也就是将第一天的写的layout中的item_main_top展示到主界 ...

  3. android软件简约记账app开发day08-时间对话框的书写+改bug,改bug

    android软件简约记账app开发day08-时间对话框的书写+改bug,改bug 绘制对话跨页面 在添加记账信息功能中,我提供了用户添加备注添加事件的功能,设计是点击时间会弹出一个时间对话框供用户 ...

  4. android软件简约记账app开发day04-记账页面条目的代码书写

    android软件简约记账app开发day04-记账页面条目的代码书写 在前三天我们完成了基本的界面展示,从今天开始,我们进入到后台逻辑代码的编写中,今天开发记账条目的代码 我们在主页面点击记一笔图标 ...

  5. android软件简约记账app开发day09-主页面模块,收支记账信息的展示

    android软件简约记账app开发day09-主页面模块,收支记账信息的展示 我们第一天已经绘制了记账条目的界面,也在主界面设置了LietView来展示记账条目,今天来实现记账后再主界面的展示效果 ...

  6. android软件简约记账app开发day05-记账页面条目代码优化和bug解决

    android软件简约记账app开发day05-记账页面条目代码优化和bug解决 今天还是因为该bug又极大的耽误了项目进程,该开发文档都要没有时间来写了. 先说bug吧,在昨天已经实现了页面图标的展 ...

  7. android软件简约记账app开发day03-自定义键盘的书写

    android软件简约记账app开发day03-自定义键盘的书写 我们在fragment界面使用了自定义的keybroad键盘,所以今天我们来书写自定义的键盘代码 新建util包,新建keyboard ...

  8. android软件简约记账app开发day02-收入支出明细页面绘制

    android软件简约记账app开发day02-收入支出明细页面绘制 效果图 列表界面绘制 新建layout文件-item_mainlv.xml大体使用绝对布局,嵌套相对布局,嵌套文本内容实现 < ...

  9. android软件简约记账app开发day01-今日收支明细的界面绘制

    android软件简约记账app开发day01-今日收支明细的界面绘制 导入素材 导入在阿里iconfront图标库下载的字体图标分为大小两种,分别导入到项目目录mipmap-hdpi和mipmap- ...

随机推荐

  1. 5月10日 python学习总结 单表查询 和 多表连接查询

    一. 单表查询  一 语法 select distinct 查询字段1,查询字段2,... from 表名 where 分组之前的过滤条件 group by 分组依据 having 分组之后的过滤条件 ...

  2. phpcms 2008 变量覆盖漏洞

    一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 3.点击新建项目按钮,弹出对画框中选择(C:\ ...

  3. 4、传统三层架构与DDD分层架构

    4.传统三层架构与DDD分层架构 模型是抽象的 现实是形象的 技巧是重要的 思想是永恒的 从传统三层架构与DDD分层架构的编程演变其实是思想的演变. 传统三层架构,即用户界面层UI.业务逻辑层BAL. ...

  4. 老徐和阿珍的故事:ArrayList和LinkedList的效率到底哪个高?

    人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐.据说之前炒某币败光了所有家产,甚至现在还有欠债. 阿珍,女,本名陈家珍,刚 ...

  5. 羽夏看Win系统内核—— x64 番外篇

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  6. 如何在不使用BasePACKAGE过滤器的情况下排除程序包?

    过滤程序包的方法不尽相同.但是弹簧启动提供了一个更复杂的选项,可以在不接触组件扫描的情况下实现这一点. 在使用注释@ SpringBootApplication时,可以使用排除属性. 请参阅下面的代码 ...

  7. 介绍Collection框架的结构?

    随意发挥题,天南海北谁便谈,只要让别觉得你知识渊博,理解透彻即可.

  8. PRODUCER配置加载

    1.入口 Kafka通过new一个KafkaProducer将配置项进行加载.将用户定义的properties作为参数,构造成一个ProducerConfig对象. public KafkaProdu ...

  9. 什么是通知Advice?

    特定 JoinPoint 处的 Aspect 所采取的动作称为 Advice.Spring AOP 使用一个 Advice 作为拦截器,在 JoinPoint "周围"维护一系列的 ...

  10. 学习Redis(二)

    1.Redis应用场景 1.缓存(键过期时间) 1) 缓存session会话 2) 缓存用户信息,找不到再去mysql查,查到然后回写到redis 3) 商城优惠卷过期时间 2.排行榜(列表& ...