android學習之選單的子選單的學習
阿新 • • 發佈:2019-02-10
android選單的學習之子選單
android選單學習之選項選單---------------------
1、在android的3.0以後可以在item的標籤中新增on-click這個。這就是一個單獨註冊一個事件的監聽。但一般情況
下,不推薦使用這個方式註冊點選事件。
2、子選單中是不能再新增子選單的,
3、新增子選單---
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.fjx.activity.MainActivity" >
<item
android:id="@+id/file"
android:title="@string/file">
<!-- 這就是一個子選單 -->
<menu>
<item
android:id="@+id/create_new"
android:title="@string/create_new"/>
<item
android:id="@+id/open"
android:title="@string/open"/>
</menu>
</item>
</menu>
4、二級選單的點選事件。------
該選單是一個選項選單的點選事件。
public boolean onOptionsItemSelected(MenuItem item) {
//二級的選單的獲取的id的方式,並且新增點選事件。
//獲取子選單。
SubMenu sItem=item.getSubMenu();
//根據子選單的id來做點選事件。找到子項的id。
switch (item.getItemId()) {
case R.id.create_new:
Toast.makeText(MainActivity.this, "----->新建", 1).show();
break;
case R.id.open:
Toast.makeText(MainActivity.this, "----->開啟", 1).show();
break;
}
return super.onOptionsItemSelected(item);
}
5、其實選單的點選事件做到二級選單的點選事件就可以了。
6、子選單的點選事件也是走onOptionsItemSelected()這個方法的。
android選單學習之上下文選單。-----------
1、上下文選單提供了一個動作,影響了一個選項。
2、上下文的選單使用才ListView和GridView中比較多一點。
3、它可以浮動在activity中。
4、上下文選單是執行長按事件才會出來的,點選是不會出來的。
5、registerContextMenu()使用該方法去註冊上下文選單。
6、給一個ListView新增一個上下文的選單--------
(1)、context.registerContextMenu(ListView);
(2)、重寫onCreateContextMenu()方法。
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.main, menu);//新增一個選單的佈局。
}
(3)、上下文選單的點選事件----
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
int id = item.getItemId();
switch (id) {
case R.id.delete:
String value=adapter.getItem(info.position);
Toast.makeText(MainActivity.this, "刪除"+value+"--"+info.position, 1).show();
break;
case R.id.add:
Toast.makeText(MainActivity.this, "新增黑名單", 1).show();
break;
case R.id.cancel:
Toast.makeText(MainActivity.this, "取消", 1).show();
break;
}
return super.onContextItemSelected(item);
}
android選單學習之彈出式選單-----------------
1、彈出式選單是一種選單的模式,他可以顯示在某個view的下面,當有空間的時候。如果下面沒有空間,就
顯示在view的上面。
2、如何寫一個彈出式選單----
main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.fjx.activity.MainActivity" >
<item
android:id="@+id/open"
android:showAsAction="never"
android:title="開啟"/>
<item
android:id="@+id/close"
android:showAsAction="never"
android:title="關閉"/>
</menu>
activity.java中
public void showPopup(View view){
PopupMenu popupMenu=new PopupMenu(this, view);
popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());
popupMenu.show();
}
3、選單的Group自己看。--------------
4、選單中可以觸發一個動作或意圖。
5、可以使用activity去新增一個選單。
android選單學習之showasaction屬性---------
1、這就是設定選單的行為的屬性---
2、ashowasaction的值---有1)、always,2)、never,3)、ifRoom,4)、等
android選單的學習之actionMode選單的模式------
1、上下文選單中android的3.0以後出現的一種選單的模式。
2、該模式的使用注意看android的官方的文件---還有結合下面的例子
步驟:
1)、 ActionMode.Callback callback=new Callback(),並重寫它的方法。
2)、onCreateActionMode(ActionMode mode, Menu menu) 在這個方法中
mode.getMenuInflater().inflate(menuRes, menu);載入選單。
3)、public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
Toast.makeText(MainActivity.this, "---->delete", 1).show();
break;
case R.id.cancel:
Toast.makeText(MainActivity.this, "---->cancel", 1).show();
break;
case R.id.add:
Toast.makeText(MainActivity.this, "---->add", 1).show();
break;
}
4)、mode.finish();
android選單學習之選項選單---------------------
1、在android的3.0以後可以在item的標籤中新增on-click這個。這就是一個單獨註冊一個事件的監聽。但一般情況
下,不推薦使用這個方式註冊點選事件。
2、子選單中是不能再新增子選單的,
3、新增子選單---
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.fjx.activity.MainActivity" >
<item
android:id="@+id/file"
android:title="@string/file">
<!-- 這就是一個子選單 -->
<menu>
<item
android:id="@+id/create_new"
android:title="@string/create_new"/>
<item
android:id="@+id/open"
android:title="@string/open"/>
</menu>
</item>
</menu>
4、二級選單的點選事件。------
該選單是一個選項選單的點選事件。
public boolean onOptionsItemSelected(MenuItem item) {
//二級的選單的獲取的id的方式,並且新增點選事件。
//獲取子選單。
SubMenu sItem=item.getSubMenu();
//根據子選單的id來做點選事件。找到子項的id。
switch (item.getItemId()) {
case R.id.create_new:
Toast.makeText(MainActivity.this, "----->新建", 1).show();
break;
case R.id.open:
Toast.makeText(MainActivity.this, "----->開啟", 1).show();
break;
}
return super.onOptionsItemSelected(item);
}
5、其實選單的點選事件做到二級選單的點選事件就可以了。
6、子選單的點選事件也是走onOptionsItemSelected()這個方法的。
android選單學習之上下文選單。-----------
1、上下文選單提供了一個動作,影響了一個選項。
2、上下文的選單使用才ListView和GridView中比較多一點。
3、它可以浮動在activity中。
4、上下文選單是執行長按事件才會出來的,點選是不會出來的。
5、registerContextMenu()使用該方法去註冊上下文選單。
6、給一個ListView新增一個上下文的選單--------
(1)、context.registerContextMenu(ListView);
(2)、重寫onCreateContextMenu()方法。
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.main, menu);//新增一個選單的佈局。
}
(3)、上下文選單的點選事件----
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
int id = item.getItemId();
switch (id) {
case R.id.delete:
String value=adapter.getItem(info.position);
Toast.makeText(MainActivity.this, "刪除"+value+"--"+info.position, 1).show();
break;
case R.id.add:
Toast.makeText(MainActivity.this, "新增黑名單", 1).show();
break;
case R.id.cancel:
Toast.makeText(MainActivity.this, "取消", 1).show();
break;
}
return super.onContextItemSelected(item);
}
android選單學習之彈出式選單-----------------
1、彈出式選單是一種選單的模式,他可以顯示在某個view的下面,當有空間的時候。如果下面沒有空間,就
顯示在view的上面。
2、如何寫一個彈出式選單----
main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.fjx.activity.MainActivity" >
<item
android:id="@+id/open"
android:showAsAction="never"
android:title="開啟"/>
<item
android:id="@+id/close"
android:showAsAction="never"
android:title="關閉"/>
</menu>
activity.java中
public void showPopup(View view){
PopupMenu popupMenu=new PopupMenu(this, view);
popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());
popupMenu.show();
}
3、選單的Group自己看。--------------
4、選單中可以觸發一個動作或意圖。
5、可以使用activity去新增一個選單。
android選單學習之showasaction屬性---------
1、這就是設定選單的行為的屬性---
2、ashowasaction的值---有1)、always,2)、never,3)、ifRoom,4)、等
android選單的學習之actionMode選單的模式------
1、上下文選單中android的3.0以後出現的一種選單的模式。
2、該模式的使用注意看android的官方的文件---還有結合下面的例子
步驟:
1)、 ActionMode.Callback callback=new Callback(),並重寫它的方法。
2)、onCreateActionMode(ActionMode mode, Menu menu) 在這個方法中
mode.getMenuInflater().inflate(menuRes, menu);載入選單。
3)、public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
Toast.makeText(MainActivity.this, "---->delete", 1).show();
break;
case R.id.cancel:
Toast.makeText(MainActivity.this, "---->cancel", 1).show();
break;
case R.id.add:
Toast.makeText(MainActivity.this, "---->add", 1).show();
break;
}
4)、mode.finish();