練習25,備忘錄,可儲存。
第二頁
package ex25.Memo2;
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
{
TextView txv;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Intent it = getIntent(); //取得傳入的 Intent 物件
txv = (TextView) findViewById(R.id.textView1);
String s = it.getStringExtra("備忘"); //讀出名為 "備忘" 的 String 資料
txv.setText(s.substring(0, 2)); //在畫面左上角顯示編號
edt = (EditText) findViewById(R.id.editText1);
if (s.length() > 3)
edt.setText(s.substring(3)); //將傳來的備忘資料去除前3個字, 然後填入編輯元件中
}
public void onCancel(View v)
{ //按取消鈕時
setResult(RESULT_CANCELED); // 傳回代表取消的結果碼
finish(); //結束活動
}
public void onSave(View v)
{ //按儲存鈕時
Intent it2 = new Intent();
it2.putExtra("備忘", txv.getText() + " " + edt.getText()); // 附加項目編號與修改後的內容
setResult(RESULT_OK, it2); // 傳回代表成功的結果碼, 以及修改的資料
finish(); //結束活動
}
}
package ex25.Memo2;
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
{
TextView txv;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Intent it = getIntent(); //取得傳入的 Intent 物件
txv = (TextView) findViewById(R.id.textView1);
String s = it.getStringExtra("備忘"); //讀出名為 "備忘" 的 String 資料
txv.setText(s.substring(0, 2)); //在畫面左上角顯示編號
edt = (EditText) findViewById(R.id.editText1);
if (s.length() > 3)
edt.setText(s.substring(3)); //將傳來的備忘資料去除前3個字, 然後填入編輯元件中
}
public void onCancel(View v)
{ //按取消鈕時
setResult(RESULT_CANCELED); // 傳回代表取消的結果碼
finish(); //結束活動
}
public void onSave(View v)
{ //按儲存鈕時
Intent it2 = new Intent();
it2.putExtra("備忘", txv.getText() + " " + edt.getText()); // 附加項目編號與修改後的內容
setResult(RESULT_OK, it2); // 傳回代表成功的結果碼, 以及修改的資料
finish(); //結束活動
}
}
第一頁
package ex25.Memo2;
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("備忘", aMemo[pos]); //附加備忘項目的內容
startActivityForResult(it, pos); //啟動 Edit 並以項目位置為識別碼
}
public boolean onItemLongClick(AdapterView<?> a, View v, int pos, long id)
{
aMemo[pos] = (pos + 1) + "."; //將內容清除 (只剩編號)
aa.notifyDataSetChanged(); //通知 Adapter 要更新陣列內容
return true; //傳回 true 表示此事件已處理
}
protected void onActivityResult(int requestCode,
int resultCode, Intent it)
{
if (resultCode == RESULT_OK)
{
aMemo[requestCode] = it.getStringExtra("備忘"); // 使用傳回的資料更新陣列內容
aa.notifyDataSetChanged(); // 通知 Adapter 陣列內容有更新
}
}
}
留言
張貼留言