編輯:關於Android編程
android中的上下文菜單類似於PC上的鼠標右鍵單擊,不同的是android上沒有鼠標這一概念,更談不上右鍵單擊,在android中,一般是長按某個View,調出上下文菜單。與OptionsMenu不同的是,ContextMenu是一個針對View的菜單,它綁定在某一個View上,而OptionsMenu是屬於一個Activity的。
現在大部分浏覽器都有長按復制的功能,如下圖:

這種效果的實現是使用PopupWindow來實現的(關於PopupWindow的使用可以參見我的另一篇文章popupWindow使用詳解
),雖然它和我們即將要說的ContextMenu很像。
好了,說了這麼多,我們該說說怎麼實現上下文菜單了。
實現上下文菜單一共三個步驟:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(你想干啥?);
menu.setHeaderIcon(R.drawable.a4c);
menu.add(0, 0, Menu.NONE, 復制);
menu.add(0, 1, Menu.NONE, 剪貼);
menu.add(0, 2, Menu.NONE, 重命名);
menu.add(1, 3, Menu.NONE, 去新的Activity);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
tv.setText(item.getTitle().toString());
break;
case 1:
tv.setText(item.getTitle().toString());
break;
case 2:
tv.setText(item.getTitle().toString());
break;
case 3:
tv.setText(item.getTitle().toString());
startActivity(new Intent(this, SecondActivity.class));
break;
default:
return super.onContextItemSelected(item);
}
return true;
}
tv = (TextView) this.findViewById(R.id.tv); this.registerForContextMenu(tv);
public class SecondActivity extends Activity {
private ListView lv;
private String[] menuStrs;
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
lv = (ListView) this.findViewById(R.id.lv);
initListView();
this.registerForContextMenu(lv);
}
private void initListView() {
menuStrs = new String[] { 慶歷四年春, 滕子京谪守巴陵郡, 越明年, 政通人和 };
adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, menuStrs);
lv.setAdapter(adapter);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(你想干啥?);
menu.setHeaderIcon(R.drawable.a4c);
menu.add(0, 0, Menu.NONE, 岳);
menu.add(0, 1, Menu.NONE, 陽);
menu.add(0, 2, Menu.NONE, 樓);
menu.add(1, 3, Menu.NONE, 記);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case 0:
menuStrs[menuInfo.position] += 岳;
break;
case 1:
menuStrs[menuInfo.position] += 陽;
break;
case 2:
menuStrs[menuInfo.position] += 樓;
break;
case 3:
menuStrs[menuInfo.position] += 記;
break;
default:
return super.onContextItemSelected(item);
}
adapter.notifyDataSetChanged();
return true;
}
}
實現的效果如下圖所示:

Android 自定義UI圓角按鈕
Android實際開發中我們一般需要圓角的按鈕,一般情況下我們可以讓美工做出來相應的按鈕圖片,然後放上去即可,另外我們可以在布局文件中直接設置,也可以達到一樣的效果。下面
Android自定義控件之開關按鈕學習筆記分享
今天來講講自定義單個控件,就拿開關按鈕來講講,相信大家見了非常多這樣的了,先看看效果:我們可以看到一個很常見的開關按鈕,那就來分析分析。首先:這是由兩張圖片構成:①一張為
Android Studio 快捷鍵盤
終於拋棄了卡頓惡心的Eclipse,在使用一個月Android Studio 之後,對Android Studio 的設計實在是非常敬佩,雖然現在Android
Android 數據存儲 (一)SQLite
最近項目需要用到涉及數據庫SQLite的知識,真正用的時候才發現自己一點都不熟悉。所以打算將其使用方法總結一下,方便自己以後復習。SQLiteDatabaseSQLite