package com.diygreen.android6new.newapi;
import android.annotation.TargetApi;
import android.graphics.Rect;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.diygreen.android6new.R;
public class TextSelectionActivity extends AppCompatActivity {
private ActionMode mActionMode;
private TextView mTestTV;
private ActionMode.Callback2 mCallback2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_textselection);
initView();
initData();
}
private void initView() {
this.mTestTV = (TextView) findViewById(R.id.tv_test);
this.mTestTV.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
testTextSelection();
return false;
}
});
}
@TargetApi(23)
private void initData() {
mCallback2 = new ActionMode.Callback2() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
if (inflater == null) {
return false;
}
inflater.inflate(R.menu.actionmode_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
Toast.makeText(TextSelectionActivity.this, item.getTitle(), Toast.LENGTH_LONG).show();
mode.finish();
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
// 控制这个浮动菜单的位置
@Override
public void onGetContentRect(ActionMode mode, View view, Rect outRect) {
super.onGetContentRect(mode, view, outRect);
}
};
this.mTestTV.setCustomSelectionActionModeCallback(mCallback2);
}
@TargetApi(23)
private void testTextSelection() {
mActionMode = startActionMode(mCallback2, ActionMode.TYPE_FLOATING);
}
}