package com.example.yu;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import com.notepad.namespace.R;
import java.util.ArrayList;
public class NotepadActivity extends ListActivity implements OnScrollListener {
/** Called when the activity is first created. */
//用于表示當前界面是屬于哪種狀態
public static final int CHECK_STATE = 0;
public static final int EDIT_STATE = 1;
public static final int ALERT_STATE = 2;
private ListView listView;
private com.example.yu.ListViewAdapter adapter;// 資料源物件
private View RecordView;///串列布局
private View longClickView ;///長按彈出的布局
private Button addRecordButton;//新增
private Button deleteRecordButton;//洗掉
private Button checkRecordButton;//查看
private Button modifyRecordButton;//修改
private com.example.yu.DatabaseManage dm = null;// 資料庫管理物件
private Cursor cursor = null;
private int id = -1;//被點擊的條目
private Bundle savedInstanceState;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
RecordView = getLayoutInflater()
.inflate(R.layout.footer,null);//獲取條目串列的布局
longClickView = getLayoutInflater()
.inflate(R.layout.long_click,null);
//獲取按鈕物件
addRecordButton = (Button)
RecordView.findViewById(R.id.addRecordButton);
deleteRecordButton = (Button)
longClickView.findViewById(R.id.deleteRecordButton);
checkRecordButton = (Button)
longClickView.findViewById(R.id.checkRecordButton);
modifyRecordButton = (Button)
longClickView.findViewById(R.id.modifyRecordButton);
dm = new DatabaseManage(this);//資料庫操作物件
listView = getListView();//獲取id為list的物件
listView.addFooterView(RecordView);//設定串列底部 視圖
initAdapter();//初始化
// this.startManagingCursor(cursor);//將cursor交給Activity管理
setListAdapter(adapter);//自動為id為list的ListView設定配接器
//設定滑動監聽器
listView.setOnScrollListener(this);
listView.setOnCreateContextMenuListener(new myOnCreateContextMenuListener());
//設定按鈕監聽器
addRecordButton.setOnClickListener(new AddRecordListener());//新增
deleteRecordButton.setOnClickListener(new DeleteRecordListener());//洗掉
checkRecordButton.setOnClickListener(new CheckRecordListener());//查看
modifyRecordButton.setOnClickListener(new ModifyRecordListener());//修改
}
//初始化資料源
public void initAdapter(){
dm.open();//打開資料庫操作物件
cursor = dm.selectAll();//獲取所有資料
cursor.moveToFirst();//將游標移動到第一條資料,使用前必須呼叫
int count = cursor.getCount();//個數
ArrayList<String> items = new ArrayList<String>();
ArrayList<String> times = new ArrayList<String>();
for(int i= 0; i < count; i++){
items.add(cursor.getString(cursor.getColumnIndex("title")));
times.add(cursor.getString(cursor.getColumnIndex("time")));
cursor.moveToNext();//將游標指向下一個
}
// cursor.close();
dm.close();//關閉資料操作物件
adapter = new com.example.yu.ListViewAdapter(this,items,times);//創建資料源
}
@Override
protected void onDestroy() {//銷毀Activity之前,所做的事
// TODO Auto-generated method stub
cursor.close();//關閉游標
super.onDestroy();
}
//滑動事件
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
//---------------------------------------------------------------
//長按
public class myOnCreateContextMenuListener implements OnCreateContextMenuListener{
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
final AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle("");
//設定選項
menu.add(0,0,0,"洗掉");
menu.add(0,1,0,"修改");
menu.add(0,2,0,"查看");
}
}
//回應長按彈出選單的點擊事件
public boolean onContextItemSelected(MenuItem item){
AdapterView.AdapterContextMenuInfo menuInfo =
(AdapterView.AdapterContextMenuInfo)item
.getMenuInfo();
// HashMap<String, Object> map = List.get(menuInfo.position);
dm.open();
// cursor = dm.selectAll();
switch(item.getItemId()){
case 0://洗掉
try{
cursor.moveToPosition(menuInfo.position);
int i = dm.delete(Long.parseLong(cursor.getString(cursor.getColumnIndex("_id"))));//洗掉資料
adapter.removeListItem(menuInfo.position);//洗掉資料
adapter.notifyDataSetChanged();//通知資料源,資料已經改變,重繪界面
// Log.v("show", "chenggong1" + i);
}catch(Exception ex){
ex.printStackTrace();
}
break;
case 1://修改
// Log.v("show", "chenggong2");
try{
cursor.moveToPosition(menuInfo.position);
//用于Activity之間的通訊
Intent intent = new Intent();
//通訊時的資料傳送
intent.putExtra("id", cursor.getString(cursor.getColumnIndex("_id")));
intent.putExtra("state", ALERT_STATE);
intent.putExtra("title", cursor.getString(cursor.getColumnIndex("title")));
intent.putExtra("time", cursor.getString(cursor.getColumnIndex("time")));
intent.putExtra("content", cursor.getString(cursor.getColumnIndex("content")));
//設定并啟動另一個指定的Activity
intent.setClass(com.example.yu.NotepadActivity.this, com.example.yu.NotepadEditActivity.class);
com.example.yu.NotepadActivity.this.startActivity(intent);
}catch(Exception ex){
ex.printStackTrace();
}
break;
case 2://查看
// Log.v("show", "chenggong3");
try{
cursor.moveToPosition(menuInfo.position);
Intent intent = new Intent();
intent.putExtra("id", cursor.getString(cursor.getColumnIndex("_id")));
intent.putExtra("title", cursor.getString(cursor.getColumnIndex("title")));
intent.putExtra("time", cursor.getString(cursor.getColumnIndex("time")));
intent.putExtra("content", cursor.getString(cursor.getColumnIndex("content")));
intent.setClass(com.example.yu.NotepadActivity.this, com.example.yu.NotepadCheckActivity.class);
com.example.yu.NotepadActivity.this.startActivity(intent);
}catch(Exception ex){
ex.printStackTrace();
}
break;
default:;
}
// cursor.close();
dm.close();
return super.onContextItemSelected(item);
}
//短按,即點擊
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
// Log.v("position", position+"");
// Log.v("id", id+"");
cursor.moveToPosition(position);
Intent intent = new Intent();
intent.putExtra("state", CHECK_STATE);
intent.putExtra("id", cursor.getString(cursor.getColumnIndex("_id")));
intent.putExtra("title", cursor.getString(cursor.getColumnIndex("title")));
intent.putExtra("time", cursor.getString(cursor.getColumnIndex("time")));
intent.putExtra("content", cursor.getString(cursor.getColumnIndex("content")));
// cursor.close();
dm.close();
intent.setClass(com.example.yu.NotepadActivity.this,NotepadCheckActivity .class);
com.example.yu.NotepadActivity.this.startActivity(intent);
}
//新建
public class AddRecordListener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.putExtra("state", EDIT_STATE);
intent.setClass(NotepadActivity.this, NotepadEditActivity.class);
com.example.yu.NotepadActivity.this.startActivity(intent);
}
}
//------------------------------------------------------------------------
public class DeleteRecordListener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
public class CheckRecordListener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
public class ModifyRecordListener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
}
uj5u.com熱心網友回復:
你還是把報錯日志發出來吧
uj5u.com熱心網友回復:
請發日志,這一堆代碼誰去看啊轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/231206.html
標籤:Android
