当你长时间按下Android中的某个东西时,会弹出一个上下文菜单。我想在这个上下文菜单中为系统中的所有TextViews添加一些东西。
例如,系统通过复制和粘贴来完成此操作。我想添加我自己的,并让它出现在每个应用程序中。
发布于 2009-02-20 22:18:50
目前Android不支持这一点,如果没有特定的activity实现您公开的意图或activity,您就不能在系统级全局覆盖或挂钩功能。即使在发布意图的情况下,这也无关紧要,除非正在运行的应用程序是消费者……而且所有的基础系统应用程序,很明显,在你之前的所有应用程序都不会没有更新应用程序来消费。
从根本上说,这是不可能的。
您到底想通过这个全局上下文菜单来实现什么,即运行在应用程序中的某种全局“搜索”或“发送到”功能?
发布于 2019-01-03 16:58:52
在文件android-manifest.xml中添加intent-filter:
<activity
android:name=".ProcessTextActivity"
android:label="@string/process_text_action_name">
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>在onCreate()方法的活动中通过用户文本突出显示您的应用程序:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.process_text_main);
CharSequence text = getIntent()
.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT);
// process the text
}有关更多信息,请参阅medium上的文章。
感谢用户:YungBlade
他在ru.stackoverflow.com上的回答
发布于 2009-02-18 09:19:53
嗯;我不知道你是否可以像example那样扩展内置类型。Ruby (我的Java知识还不够深)。
但是,您可以从TextView派生自己的MyTextView。然后在布局中替换所有TextView,如下所示:
<TextView android:id="@+id/TextView01" />至
<com.mydomain.mypackage.MyTextView android:id="@+id/TextView01" />自动更改所有这些字段的类型。
然后你需要覆盖所有的构造函数(特别是TextView(Context context, AttributeSet attrs) )。
之后,所有布局充气(自动或手动)将创建这种类型的没有大惊小怪。
然后,您可以根据需要创建/注册上下文菜单回调。
https://stackoverflow.com/questions/559405
复制相似问题