package ex24.Memo;備忘錄,可進入第二頁,不可儲存。Intent,onItemLong,onItemClick、Adapter 要更新
package ex24.Memo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity
implements OnItemClickListener, OnItemLongClickListener
{
String[] aMemo = { // 預設的備忘內容
"1. 按一下可以編輯備忘",
"2. 長按可以清除備忘", "3.", "4.", "5.", "6."};
ListView lv; // 顯示備忘錄的 ListView
ArrayAdapter<String> aa; // ListView 與備忘資料的橋樑
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, aMemo);
lv.setAdapter(aa); //設定 listView1 的內容
//設定 listView1 被按一下的監聽器
lv.setOnItemClickListener(this);
//設定 listView1 被長按的監聽器
lv.setOnItemLongClickListener(this);
}
public void onItemClick(AdapterView<?> a, View v, int pos, long id)
{
Intent it = new Intent(this, Edit.class);
it.putExtra("編號", pos + 1); //附加編號
it.putExtra("備忘", aMemo[pos]); //附加備忘項目的內容
startActivity(it); //啟動 Edit 活動
}
public boolean onItemLongClick(AdapterView<?> a, View v, int pos, long id)
{
aMemo[pos] = (pos + 1) + "."; //將內容清除 (只剩編號)
aa.notifyDataSetChanged(); //通知 Adapter 要更新陣列內容
return true; //傳回 true 表示此事件已處理
}
}
第二頁
package ex24.Memo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class Edit extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Intent it = getIntent(); //取得傳入的 Intent 物件
int no = it.getIntExtra("編號", 0); //讀出名為 "編號" 的 Int 資料, 若沒有則傳回 0
String s = it.getStringExtra("備忘"); //讀出名為 "備忘" 的 String 資料
TextView txv = (TextView) findViewById(R.id.textView1);
txv.setText(no + "."); //在畫面左上角顯示編號
EditText edt = (EditText) findViewById(R.id.editText1);
if (s.length() > 3)
edt.setText(s.substring(3)); //將傳來的備忘資料去除前3個字, 然後填入編輯元件中
}
public void onCancel(View v)
{ //按取消鈕時
finish(); //結束活動
}
public void onSave(View v)
{ //按儲存鈕時
finish(); //結束活動
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity
implements OnItemClickListener, OnItemLongClickListener
{
String[] aMemo = { // 預設的備忘內容
"1. 按一下可以編輯備忘",
"2. 長按可以清除備忘", "3.", "4.", "5.", "6."};
ListView lv; // 顯示備忘錄的 ListView
ArrayAdapter<String> aa; // ListView 與備忘資料的橋樑
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, aMemo);
lv.setAdapter(aa); //設定 listView1 的內容
//設定 listView1 被按一下的監聽器
lv.setOnItemClickListener(this);
//設定 listView1 被長按的監聽器
lv.setOnItemLongClickListener(this);
}
public void onItemClick(AdapterView<?> a, View v, int pos, long id)
{
Intent it = new Intent(this, Edit.class);
it.putExtra("編號", pos + 1); //附加編號
it.putExtra("備忘", aMemo[pos]); //附加備忘項目的內容
startActivity(it); //啟動 Edit 活動
}
public boolean onItemLongClick(AdapterView<?> a, View v, int pos, long id)
{
aMemo[pos] = (pos + 1) + "."; //將內容清除 (只剩編號)
aa.notifyDataSetChanged(); //通知 Adapter 要更新陣列內容
return true; //傳回 true 表示此事件已處理
}
}
第二頁
package ex24.Memo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class Edit extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Intent it = getIntent(); //取得傳入的 Intent 物件
int no = it.getIntExtra("編號", 0); //讀出名為 "編號" 的 Int 資料, 若沒有則傳回 0
String s = it.getStringExtra("備忘"); //讀出名為 "備忘" 的 String 資料
TextView txv = (TextView) findViewById(R.id.textView1);
txv.setText(no + "."); //在畫面左上角顯示編號
EditText edt = (EditText) findViewById(R.id.editText1);
if (s.length() > 3)
edt.setText(s.substring(3)); //將傳來的備忘資料去除前3個字, 然後填入編輯元件中
}
public void onCancel(View v)
{ //按取消鈕時
finish(); //結束活動
}
public void onSave(View v)
{ //按儲存鈕時
finish(); //結束活動
}
}
留言
張貼留言