編輯:Android開發教程
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組件的引用
// 查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
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);
}
}
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/
Android APK反編譯詳解
這段時間在學Android應用開發,在想既然是用Java開發的應該很好反編譯從而得到源代碼吧,google了一下,確實很簡單, 以下是我的實踐過程。在此鄭重聲明,貼出來的
Android開發入門(十二)列表控件 12.3 ListView的總結范例
使用一個例子,來總結一下ListView的基本使用。1. 新建一個工程:ListViewDemo。2. main.xml中的代碼。<?xml version=&qu
Android滑動效果基礎篇(四) Gallery + GridView
Android系統自帶一個GridView和Gallery兩個控件,GridView網格顯示,Gallery單個浏覽,兩者結合起來可以真正實現 Gallery浏覽圖片效果
Android重力感應示例
android中的很多游戲的游戲都使用了重力感應的技術,就研究了一下重力感應以屏幕的左下方為原點,箭頭指向的 方向為正。從-10到10,以浮點數為等級單位,想象以下情形: