Android-ToDoList詳解-創(chuàng)新互聯(lián)

ToDoList 詳解


成都創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的西部信息服務(wù)器托管服務(wù)

版權(quán)所有, 禁止轉(zhuǎn)載, 如有需要, 請站內(nèi)聯(lián)系.

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

ToDoList是一個(gè)Android的入門程序, 包含兩個(gè)控件, EditText(編輯文本),ListView(列表視圖), 放置在LinearLayout(線性布局);

需要重寫監(jiān)聽按鍵(setOnKeyListener), 使用適配器(Adapter)進(jìn)行關(guān)聯(lián);

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(控件高度), 兩個(gè)屬性, Android系統(tǒng)會做出相應(yīng)的匹配;

2. id屬性, 是為了在R文件中注冊, 在程序邏輯(java文件)中使用, 所以使用"@+id", "+"表示添加的意思;

3. LinearLayout控件(線性), 需要指明orientation(方向), 使其內(nèi)部控件有序排列;

4. layout的匹配常用的兩種屬性: match_parent(匹配父控件, 填充),wrap_content(包圍內(nèi)容, 根據(jù)內(nèi)容最小化);

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

注意:

使用字符串的形式, 可以使表示層和應(yīng)用邏輯層分離, 可以擴(kuò)展其他語言;

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>();          //創(chuàng)建ArrayAdapter以便講數(shù)組綁定到ListView         final ArrayAdapter<String> aa;         aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems);          //將ArrayAdapter綁定到ListView         myListView.setAdapter(aa);          //監(jiān)聽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()函數(shù);

2. 得到特定UI組件的引用, 使用findViewById()函數(shù), 然后進(jìn)行類型轉(zhuǎn)換;

3. 可以new一些存儲函數(shù)如ArrayList<String>, 使用相應(yīng)的適配器(ArrayAdapter), 關(guān)聯(lián)至UI組件, 如simple_list_item_1表示列表視圖(ListView)的第一項(xiàng);

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

5. 組件的監(jiān)聽方法(setOnKeyListener), 監(jiān)聽按鍵,重寫(override)onKey()方法, 判斷是否按鍵, 做出相應(yīng)處理;

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

4. 生成代碼:

如果R文件未找到, java異常報(bào)錯(cuò), 則參考: http://blog.csdn.net/caroline_wendy/article/details/21222905

ToDoList代碼下載: http://download.csdn.net/detail/u012515223/7038327

環(huán)境如下:

Android - ToDoList 詳解

Android - ToDoList 詳解

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站標(biāo)題:Android-ToDoList詳解-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://bm7419.com/article16/gepdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、Google、網(wǎng)站制作、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名