Android-ToDoList详解-创新互联

ToDoList 详解


成都创新互联是工信部颁发资质IDC服务器商,为用户提供优质的西部信息服务器托管服务

版权所有, 禁止转载, 如有需要, 请站内联系.

本文地址: http://blog.csdn.net/caroline_wendy/article/details/21223995

ToDoList是一个Android的入门程序, 包含两个控件, EditText(编辑文本),ListView(列表视图), 放置在LinearLayout(线性布局);

需要重写监听按键(setOnKeyListener), 使用适配器(Adapter)进行关联;

1. 主界面(activity_to_do_list.xml)的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:orientation="vertical"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     android:paddingBottom="@dimen/activity_vertical_margin"     tools:context="mzx.spike.todolist.app.ToDoListActivity">      <EditText         android:id="@+id/myEditText"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:hint="@string/addItemHint"         android:contentDescription="@string/addItemContentDescription"     />      <ListView         android:id="@+id/myListView"         android:layout_width="match_parent"         android:layout_height="wrap_content"     />  </LinearLayout>


位置: res->layout->activity_to_do_list.xml

注意:

1. 所有控件, 必须要指定layout_width(控件宽度), layout_height(控件高度), 两个属性, Android系统会做出相应的匹配;

2. id属性, 是为了在R文件中注册, 在程序逻辑(java文件)中使用, 所以使用"@+id", "+"表示添加的意思;

3. LinearLayout控件(线性), 需要指明orientation(方向), 使其内部控件有序排列;

4. layout的匹配常用的两种属性: match_parent(匹配父控件, 填充),wrap_content(包围内容, 根据内容最小化);

2. 字符串(strings.xml)的代码: 

<?xml version="1.0" encoding="utf-8"?> <resources>      <string name="app_name">ToDoList</string>     <string name="addItemHint">New To Do Item</string>     <string name="addItemContentDescription">New To Do Item</string>     <string name="action_settings">Settings</string>  </resources>


位置: res->values->string.xml

注意:

使用字符串的形式, 可以使表示层和应用逻辑层分离, 可以扩展其他语言;

3. 程序逻辑(ToDoListActivity.java)的代码:

package mzx.spike.todolist.app;  import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView;  import java.util.ArrayList;   public class ToDoListActivity extends ActionBarActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_to_do_list);          //获取对UI组件的引用         ListView myListView = (ListView)findViewById(R.id.myListView);         final EditText myEditText = (EditText)findViewById(R.id.myEditText); //final 表示常量          //获取对UI组件的引用         final ArrayList<String> todoItems = new ArrayList<String>();          //创建ArrayAdapter以便讲数组绑定到ListView         final ArrayAdapter<String> aa;         aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems);          //将ArrayAdapter绑定到ListView         myListView.setAdapter(aa);          //监听myEditText的Enter键         myEditText.setOnKeyListener(new View.OnKeyListener() {             @Override             public boolean onKey(View view, int i, KeyEvent keyEvent) {                 if (keyEvent.getAction() == KeyEvent.ACTION_DOWN)                     if ((i == KeyEvent.KEYCODE_DPAD_CENTER) || (i == KeyEvent.KEYCODE_ENTER)) {                         todoItems.add(0, myEditText.getText().toString());                         aa.notifyDataSetChanged();                         myEditText.setText("");                         return true;                     }                 return false;             }         });     }       @Override     public boolean onCreateOptionsMenu(Menu menu) {                  // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.to_do_list, menu);         return true;     }      @Override     public boolean onOptionsItemSelected(MenuItem item) {         // Handle action bar item clicks here. The action bar will         // automatically handle clicks on the Home/Up button, so long         // as you specify a parent activity in AndroidManifest.xml.         int id = item.getItemId();         if (id == R.id.action_settings) {             return true;         }         return super.onOptionsItemSelected(item);     }  }


注意:

1. 指定主界面, 使用setContentView()函数;

2. 得到特定UI组件的引用, 使用findViewById()函数, 然后进行类型转换;

3. 可以new一些存储函数如ArrayList<String>, 使用相应的适配器(ArrayAdapter), 关联至UI组件, 如simple_list_item_1表示列表视图(ListView)的第一项;

4. 组件添加适配器, 使用setAdapter()方法;

5. 组件的监听方法(setOnKeyListener), 监听按键,重写(override)onKey()方法, 判断是否按键, 做出相应处理;

6. DPAD, 即d-pad手柄, android包含各种各样的硬件, 可以自由使用;

4. 生成代码:

如果R文件未找到, java异常报错, 则参考: http://blog.csdn.net/caroline_wendy/article/details/21222905

ToDoList代码下载: http://download.csdn.net/detail/u012515223/7038327

环境如下:

Android - ToDoList 详解

Android - ToDoList 详解

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网站标题:Android-ToDoList详解-创新互联
URL网址:https://www.cdcxhl.com/article16/gepdg.html

成都网站建设公司_创新互联,为您提供定制网站网站设计虚拟主机Google网站制作品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名