android – 文本选择弹出窗口?

编程之家收集整理的这篇文章主要介绍了android – 文本选择弹出窗口?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

我想在用户选择EditText中的文本时显示弹出窗口.

这是我想要做的:(来自Google Docs应用程序的屏幕截图)

我还想在该弹出窗口中添加自定义操作.

有关如何实现这一点的任何想法?

编辑:我特别想要一个浮动弹出窗口,就像屏幕截图中显示的那样,而不是ActionMode,因为appb中显示了有价值的信息.

我知道我可以让动作模式按下它下面的屏幕内容.但我真的需要一个文本选择弹出窗口.

解决方法:

让我们看看如果为给定的textView设置textIsSelectable属性为true,您将获得的默认行为.

在TextView上的onLongPress你会得到这个

enter image description here


根据android的API级别,事情可能会有所不同,

现在让我们定制一些东西,

我假设您将使用支持库v7,因此为ToolBar制作了东西.

确保您的应用程序主题具有包含此元素的样式.

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeCloseDrawable">@drawable/ic_done_white_24dp</item> // this drawable can be changed depending on what you want

contextual_action_mode_test_one_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/ContextualActionModeTestOneActivity_add"
        android:icon="@android:drawable/ic_input_add"
        android:title="Add"
        android:titleCondensed="Add"
        app:showAsAction="ifRoom|withText" />

    <item
        android:id="@+id/ContextualActionModeTestOneActivity_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="Search"
        android:titleCondensed="Search"
        app:showAsAction="ifRoom|withText" />

    <item
        android:id="@+id/ContextualActionModeTestOneActivity_sort"
        android:icon="@android:drawable/ic_menu_sort_by_size"
        android:title="Sort"
        android:titleCondensed="Sort"
        app:showAsAction="ifRoom|withText" />
    <item
        android:id="@+id/ContextualActionModeTestOneActivity_help"
        android:icon="@android:drawable/ic_menu_help"
        android:title="Help"
        android:titleCondensed="Help"
        app:showAsAction="ifRoom|withText" />
</menu>

ContextualActionModeTestOneActivity.java

public class ContextualActionModeTestOneActivity extends AppCompatActivity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contextual_action_mode_test_one);
        Toolbar toolbar = (Toolbar) findViewById(R.id.my_custom_toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        initializeUI();
    }

    private void initializeUI() {
        textView = (TextView) findViewById(R.id.ContextualActionModeTestOneActivity_textView);
        textView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                startActionMode(new ActionBarCallBack());
                return true;
            }
        });


    }


    class ActionBarCallBack implements android.view.ActionMode.Callback{

        @Override
        public boolean onCreateActionMode(android.view.ActionMode mode, Menu menu) {
            mode.setTitle("Do it");
            getMenuInflater().inflate(R.menu.contextual_action_mode_test_one_activity, menu);
            return true;
        }

        @Override
        public boolean onPrepareActionMode(android.view.ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(android.view.ActionMode mode, MenuItem item) {
            switch(item.getItemId()){
                case R.id.ContextualActionModeTestOneActivity_add:
                    Toast.makeText(getBaseContext(), "add this text somewhere ", Toast.LENGTH_LONG).show();
                    mode.finish();    // Automatically exists the action mode, when the user selects this action
                    break;
                case R.id.ContextualActionModeTestOneActivity_search:
                    Toast.makeText(getBaseContext(), "search this text ", Toast.LENGTH_LONG).show();
                    break;
                case R.id.ContextualActionModeTestOneActivity_sort:
                    Toast.makeText(getBaseContext(), "sort", Toast.LENGTH_LONG).show();
                    break;
                case R.id.ContextualActionModeTestOneActivity_help:
                    Toast.makeText(getBaseContext(), "help with this", Toast.LENGTH_LONG).show();
                    break;
            }
            return false;
        }

        @Override
        public void onDestroyActionMode(android.view.ActionMode mode) {

        }
    }
}

长按textView这就是你会看到的

enter image description here

总结

以上是编程之家为你收集整理的android – 文本选择弹出窗口?全部内容,希望文章能够帮你解决android – 文本选择弹出窗口?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群

相关文章

猜你在找的Android相关文章

Android本意指“机器人”,Google公司将Android的标识设计为一个绿色机器人, 表示Android系统符合环保概念,是一个轻薄短小,功能强大的移动系统,是第一个真正为手机打造的开放性系统。今天给大家介绍一下常见的Android界面控件。1、TextView控件(1)功能:TextView用于显示文本信息。(2)布局属性和功能描述:(3)代码样式和界面显示:...
(1)点击左侧app目录下的manifests,打开AndroidManiFest.xml文件,如图:(2)找到其中为 android:theme="@style/AppTheme" 的语句,如图:(3)将其修改为 android:theme="@style/Theme.AppCompat.NoActionBar" 即可。
本章目录一、服务概述二、服务的创建三、服务的生命周期四、服务的启动方式1、调用startService()方法启动服务2、调用bindService()方法启动服务五、服务的通信1、本地服务通信和远程服务通信2、实战演练——音乐播放器六、本章小结一、服务概述二、服务的创建清单文件:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/
本章目录一、内容提供者概述二、创建内容提供者三、访问其他应用程序1、查询其他程序的数据2 、查询系统短信四、内容观察者1、什么是内容观察者2、监测数据变化五、本章小结一、内容提供者概述二、创建内容提供者三、访问其他应用程序1、查询其他程序的数据 //获取相应操作的Uri,Uri.parse()方法是将字符串转化成Uri对象。 Uri uri = Uri.parse("content://cn.itcast.mycontentprovider/person"); //获取Conten
博主发过很多Android项目,很多同学都在评论说道导入之后运行不起来或者报错,这是因为我的项目版本和你Android的gradle版本不一致,这里给大家介绍如何按照自己gradle版本导入我的Android项目。1、首先打开一个Android项目,可以看到里面有这些文件夹,将.gradle和.idea这两个文件夹删除。2、选中build.gradle这个文件,用记事本打开,可以看到这里是自己的版本号,我的是3.6.1,你可以查看自己项目的这个文件的版本号,然后把那个版本号修改到这里就行,当然也可以在
项目目录一、项目概述二、开发环境三、详细设计1、主界面的搭建2、消息界面的搭建3、联系人界面的搭建4、动态界面的搭建5、聊天界面的搭建7、跳转功能实现7.1、选项卡的切换7.2、消息列表的适配器8、昵称的传值四、项目效果五、项目总结一、项目概述本次项目主要包含了QQ消息、联系人和动态三个选项卡界面的切换,其中消息界面设计的很详细,有消息列表和消息内容,在点击消息对话框后,会跳转到聊天界面,还会把联系人姓名传值过来。联系人和动态的界面就是很简单的两张截图,点击底下的TextView实现切换。二、开发环境
一、需求分析1、业务需求分析2、架构分析3、数据库类设计分析4、界面需求分析4.1、记事本界面4.2、添加记录界面4.3、修改记录界面二、开发环境介绍三、记事本功能业务实现1 、搭建聊天界面布局关于修改清单文件可以参考 Android Studio如何去除默认标题栏2 、搭建聊天条目布局3 、封装记录信息实体类4 、编写记事本列表适配器//适配器中的getView()方法public View getView(int position, View con
项目目录一、项目概述二、开发环境三、详细设计1、头像设计2、账号输入框3、密码输入框4、登录按钮5、按钮点击事件四、项目效果五、项目总结一、项目概述QQ是我们日常生活使用最多的软件之一,包含登录界面和进入后的聊天界面、好友列表界面和空间动态界面等。登录界面的制作比较简单,主要考验布局的使用,是实现QQ项目的第一步。现在APP开发的首要工作都是实现登录页面,所以学会了QQ登录界面对以后的软件开发有着很重要的作用。二、开发环境三、详细设计1、头像设计首先在layout文件里面选择了Relative
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注