Android程序ToDoList

简介:

本文的目的是创建一个简单的ToDoList列表。

这个应用的功能是记录我的代办事项,简单到不需要本地存储,所有的代办事项都只是存储在内存中,就是只有程序打开的时候可以增加查看代办事项,当程序关闭的时候,代办事项就清空了。

代码在:https://github.com/jianfengye/Android_Works/tree/master/ToDoList

1 流程
流程和Windows Form的开发一样:

首先是界面设计,res/layout/main.xml 的设计。这里如果使用Android Common Xml Editor的话,可以使用可视化的控件设计。当然也可以直接使用xml的文本编辑器。

其次是程序中使用到的常量。res/values/中存放的就是配置参数的键值了。

再下来就是程序逻辑了。编写src/中的java逻辑代码。

2 layout
layout定义了一个可视化的用户界面,我们可以使用两种方法来定义layout:

在XML中定义UI元素

在运行时延迟加载UI元素

使用XML定义UI元素的好处就是将逻辑层和现实层分离开。通常情况下,XML中的控件元素名称和控件类名称是对应的,而且属性的名称和类的方法也是对应的,比如EditText控件有个text属性,那么在EditText控件类中就有个setText()方法。

每个控件都可以有一个id属性,在res/main.xml中,对一个控件设置id属性应该使用@符号开头,比如

每个控件都需要设置的是layout_width和layout_height,表示这个控件的大小。

这两个属性的值可以是wrap_content和fill_parent(在 API LEVEL 8之后也叫match_parent

)。wrap_content意思是仅仅包含住内容的大小就行了。fill_parent的意思是扩展到父节点的大小。

注意,在长度设置的时候,不要使用像素大小来进行设置(尽管那个是可行的)。建议使用dp(像素无关大小),wrap_content或者fill_parent进行设置。

layout的类型分为三种:linear layout, relative layout 和 webview。

linear layout意思是线性的,分层的排列,和html中默认的标签排序是一样的。

relative layout意思是相对的,和html中relative的意思是一样的。

webview就是可以内嵌html进行处理。这个也是现在很多应用使用的方法了。

3 ArrayAdapter
layout除了可以通过xml在onCreate的时候绘制,也可以在运行中不断增加,即内容是动态的。我们可以使用AdapterView来进行增加。具体就是将一个ArrayAdapter绑定到一个AdapterView上。比如ListView。

大概的代码如下:

1
2
3
4
5
6
7
8
9
10
11
ListView myListView = (ListView)findViewById(R.id.myListView );
final EditText myEditText = (EditText)findViewById(R.id.myEditText );

//获得对UI小组件的引用
final ArrayList todoItems = new ArrayList();

final ArrayAdapter aa;

aa = new ArrayAdapter( this, android.R.layout.simple_list_item_1 , todoItems);

myListView.setAdapter(aa);
然后当你修改了ArrayAdapter中的值的时候,你需要通知其绑定的控件做更新,就要使用notifyDataSetChanged()这个函数了。

比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
myEditText .setOnKeyListener(new View.OnKeyListener() {


     @Override
     public boolean onKey(View v, int keyCode, KeyEvent event) {
          if(event.getAction() == KeyEvent.ACTION_DOWN )
                if((keyCode == KeyEvent.KEYCODE_DPAD_CENTER ) ||
                         (keyCode == KeyEvent.KEYCODE_ENTER )) {
                    todoItems.add(0, myEditText.getText().toString());
                    aa. notifyDataSetChanged();
                     myEditText.setText( "");
                     return true;
               }
          return false;
    }

});

本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3190779.html ,如需转载请自行联系原作者

相关文章
|
设计模式 算法 前端开发
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
|
数据采集 编解码 Ubuntu
Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序
Android流媒体开发之路二:NDK C++开发Android端RTMP直播推流程序
398 0
|
存储 传感器 定位技术
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
381 0
|
Java Android开发 开发者
1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
435 0
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
346 0
|
1月前
|
存储 消息中间件 人工智能
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
148 10
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
203 1
|
Oracle Java 关系型数据库
Android studio 安装以及第一个程序
Android studio 安装以及第一个程序
369 0
|
XML Java Android开发
如何美化android程序:自定义ListView背景
如何美化android程序:自定义ListView背景
148 2
|
Java Android开发
程序与技术分享:Android使用Dagger注入的方式初始化对象的简单使用
程序与技术分享:Android使用Dagger注入的方式初始化对象的简单使用
277 0

热门文章

最新文章