Androidコンテキスト操作モード
2111 ワード
コンテキスト操作モードと通常のコンテキストメニューの違いは、操作モードの表示がビューの最上位の操作バーを上書きすることであり、ボタンに長押しクリックイベントを登録することによってトリガーされるのではなく、フローティングな操作バーを上書きすることである.
コンテキストメニューxmlセクション
JAvaセクション
コンテキストメニューxmlセクション
JAvaセクション
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
findViewById(R.id.btn).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
startActionMode(MainActivity.this.ac);
return false;
}
});
}
//
ActionMode.Callback ac = new ActionMode.Callback() {
//
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.first, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
//
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.login:
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_LONG).show();
break;
case R.id.register:
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_LONG).show();
break;
}
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
//
}
};
}