ToDoList 详解
为信阳等地区用户提供了全套网页设计制作服务,及信阳网站建设行业解决方案。主营业务为成都网站制作、网站建设、信阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
版权所有, 禁止转载, 如有需要, 请站内联系.
本文地址: http://blog.csdn.net/caroline_wendy/article/details/21223995
ToDoList是一个Android的入门程序, 包含两个控件, EditText(编辑文本),ListView(列表视图),放置在LinearLayout(线性布局);
需要重写监听按键(setOnKeyListener), 使用适配器(Adapter)进行关联;
1. 主界面(activity_to_do_list.xml)的代码:
位置: 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)的代码:
ToDoList New To Do Item New To Do Item Settings
位置: 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 ArrayListtodoItems = new ArrayList (); //创建ArrayAdapter以便讲数组绑定到ListView final ArrayAdapter aa; aa = new ArrayAdapter (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
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详解
文章网址:http://scyingshan.cn/article/jsjgep.html