Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習----------長按列表項彈出菜單,給菜單項添加事件,獲取上下文

Android學習----------長按列表項彈出菜單,給菜單項添加事件,獲取上下文

編輯:關於Android編程

這裡是先顯示一個listview,長按listview的一個列表項,彈出一個菜單來,菜單有兩個條目,

“更新該條”和“刪除該條”,並且這兩條都有監聽事件,整體就像微信好友對話操作一樣。

其中菜單項有一個獲取上下文的操作:AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

這句也是用於列表項的。

具體代碼如下:

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		show = (ListView)findViewById(R.id.show);
		db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/music.db3", null);
		//顯示列表
		showlist();
		// 添加長按點擊彈出選擇菜單
		show.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
			public void onCreateContextMenu(ContextMenu menu, View v,
					ContextMenuInfo menuInfo) {
				menu.setHeaderTitle("選擇操作");
				menu.add(0, 0, 0, "更新該條");
				menu.add(0, 1, 0, "刪除該條");
			}
		});
	}
	//給菜單項添加事件
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		//info.id得到listview中選擇的條目綁定的id
		String id = String.valueOf(info.id);
		switch (item.getItemId()) {
		case 0:
			updateDialog(id);  //更新事件的方法
			return true;
		case 1:
			//System.out.println("刪除"+info.id);
			deleteData(db,id);  //刪除事件的方法
			showlist();
			return true;
		default:
			return super.onContextItemSelected(item);
		}
	}


//顯示列表項
	private void showlist(){
		Cursor cursor = null;
		try{
			cursor = db.rawQuery("select * from musiclist", null);
			inflateList(cursor);
		}catch(SQLiteException se){
			db.execSQL("create table musiclist(_id integer primary key autoincrement," 
					+"music varchar(30) ,"
					+"singer varchar(30))");
			//查詢
			cursor = db.rawQuery("select * from musiclist", null);
			inflateList(cursor);
		}finally{
			//cursor.close();
		}
	}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved