Articles of android

以编程方式将项添加到相对布局

我一直在寻找这个问题的答案。 我是Android的新手,并尝试通过java而不是xml以编程方式将项添加到相对布局。 我已经创建了一个测试类来尝试它,但项目保持堆叠而不是正确格式化。 我现在只想在另一个下面使用一个TextView(最终我将使用参数的左侧和右侧,但我开始很简单。我错过了什么? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); RelativeLayout ll = new RelativeLayout(this); ll.setId(99); sv.addView(ll); TextView tv = new TextView(this); tv.setText(“txt1”); tv.setId(1); TextView tv2 = new TextView(this); tv2.setText(“txt2”); tv2.setId(2); RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); lay.addRule(RelativeLayout.ALIGN_PARENT_TOP); ll.addView(tv, lay); RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); p.addRule(RelativeLayout.ALIGN_BOTTOM, tv.getId()); ll.addView(tv2, p); […]

浅色/暗淡触感

我目前正在开发的应用程序使用了大量的ImageViews作为按钮。 这些按钮上的图形使用Alpha通道淡出按钮的边缘,使它们看起来不规则。 目前,我们必须为每个按钮生成2个图形(1个用于选定/聚焦/按下状态,另一个用于默认的未选择状态),并使用XML文件中为每个按钮定义的StateListDrawable。 虽然这很好用但看起来非常浪费,因为所有选定的图形都只是未选定按钮的着色版本。 这些花费时间来制作(无论多少)并占用最终APK中的空间。 似乎应该有一个简单的方法来自动执行此操作。 看起来,完美的解决方案是为每个按钮使用ImageViews,并在其tint属性中指定ColorStateList。 这种方法的优点是,所有按钮(共享相同色调)只需要一个XML ColorStateList。 但它不起作用。 如此处所述,当提供给tint的值不是单一颜色时,ImageView会抛出NumberFormatException。 我的下一次尝试是为选定的drawable使用LayerDrawable。 在图层列表中,我们将原始图像放在堆栈底部,由半透明矩形覆盖。 这适用于按钮图形的实体部分。 然而,应该是完全透明的边缘现在与顶层的颜色相同。 有没有人遇到过这个问题,find了合理的解决方案? 我想坚持XML方法,但可能会编写一个简单的ImageView子类,它将在代码中进行所需的着色。

Android更改并在应用内设置默认语言环境

我正在研究Android应用程序的全球化。 我必须提供从应用程序中选择不同区域设置的选项。 我在我的活动(HomeActivity)中使用以下代码,其中我提供了更改区域设置的选项 Configuration config = new Configuration(); config.locale = selectedLocale; // set accordingly // eg. if Hindi then selectedLocale = new Locale(“hi”); Locale.setDefault(selectedLocale); // has no effect Resources res = getApplicationContext().getResources(); res.updateConfiguration(config, res.getDisplayMetrics()); 只要没有像屏幕旋转那样的配置更改,其中locale默认为android系统级别语言环境而不是代码设置的语言环境,这样就可以正常工作。 Locale.setDefault(selectedLocale); 我能想到的一个解决方案是使用SharedPreferences持久保存用户选择的语言环境,并且在每个活动的onCreate()方法中将语言环境设置为持久语言环境,因为onCreate()会在每次配置更改时反复调用。 有没有更好的方法来做到这一点,所以我不必在每个活动中都这样做。 基本上我想要的是 – 一旦我在HomeActivity中更改/设置某个区域设置,我希望我的应用程序中的所有活动都使用该区域设置本身而不管任何配置更改….除非并且直到将其更改为其他区域设置应用程序的HomeActivity提供更改区域设置的选项。

Android:如何从资产文件创建File对象?

我在assets文件夹中有一个文本文件,我需要将其转换为File对象(而不是InputStream)。 当我尝试这个时,我得到“没有这样的文件”例外: String path = “file:///android_asset/datafile.txt”; URL url = new URL(path); File file = new File(url.toURI()); // Get exception here 我可以修改它以使其工作吗? 顺便说一下,我尝试“按示例编写代码”查看我的项目中其他地方的代码,该代码引用assets文件夹中的HTML文件 public static Dialog doDialog(final Context context) { WebView wv = new WebView(context); wv.loadUrl(“file:///android_asset/help/index.html”); 我承认我并不完全理解上述机制,因此我可能无法正常工作。 谢谢!

Android Jetpack导航,使用Youtube或Instagram的BottomNavigationView,如正确的后退导航(片段后退堆栈)?

Android Jetpack导航,BottomNavigationView在后退按钮上点击自动片段后栈? 我想要的是,在用户一个接一个地选择多个标签后,用户点击后退按钮应用必须重定向到他/她打开的最后一页。 通过将当前选定的项目保存在ArrayList中,我使用Android ViewPager实现了相同的function。 Android Jetpack导航发布后是否有任何自动后退堆栈? 我想用导航图实现它 activity_main.xml中 navigation.xml 还补充道 bottomNavigation.setupWithNavController(Navigation.findNavController(this, R.id.my_nav_host_fragment)) 我从Levi Moreira那里得到了一个答案如下 navigation.setOnNavigationItemSelectedListener {item -> onNavDestinationSelected(item, Navigation.findNavController(this, R.id.my_nav_host_fragment)) } 但通过这样做只发生了最后打开的片段的实例再次创建。 为BottomNavigationView提供适当的后退导航

如何防止我的Android应用/服务被任务管理器“杀死”?

非常重要的是我的服务保持运行,直到有密码的人从我的UI屏幕停止服务。 我的应用程序运行良好但它的设计是由他们的孩子手机上的父母(带密码)打开/关闭。 我已经设法使一切正常,但我遇到的问题是,如果孩子使用任务管理器来终止我的服务,那么我的应用程序就没用了。 我要感谢任何知道某种方法的人 1)监视服务并在其被“杀死”时自动启动它,或者2)防止某人除了从启动该服务的活动(管理屏幕)之外杀死它。 或两者? 如果我不清楚描述问题,我很抱歉,我是初学者。 到目前为止,我取得了很大的进步,但我陷入了最后的障碍。

如何强制执行A​​ndroid权限?

如果我在JNI C方法中调用socket()函数,应用程序仍将失败并出现权限错误。 如果我在AndroidManifest.xml中放置一个uses-permission行,问题就解决了。 所以似乎在Dalvik虚拟机中没有实现Android权限检查,因为我正在调用本机C函数并且仍然会被检查。 我想知道在Android内核中执行检查的方式,或者用ptrace跟踪应用程序来拦截每个系统调用,或者任何其他方式。 非常感谢。

如何在操作栏中构建类似搜索框的Gmail?

我目前正在使用ActionBarcompat内的SearchView小部件来搜索时过滤列表。 当用户开始输入文本时,主布局中的ListView会使用适配器进行更新以过滤结果。 我通过实现OnQueryTextListener并在每个键OnQueryTextListener过滤结果来实现此OnQueryTextListener 。 相反,我想创建一个类似Gmail的搜索框,其中包含自动建议列表,并且不会更改基础视图 我已经阅读了使用SearchView组件的本教程 ,但它需要一个可搜索的活动。 我希望下拉菜单位于MainActivity上,我有ListView(就像在Gmail应用程序中一样),而不是专用的Activity。 此外,以与教程相同的方式实现它似乎对我想要的东西(只是一个下拉列表)有点过分

滚动时奇怪的webview黑色闪烁

我正在从String加载数据,并且在我第一次向下滚动webview时闪烁几次。 这是我加载数据的代码: webview.loadDataWithBaseURL(null, message.getmContent(), “text/html”, “UTF-8”, null); 和xml:

如何将TODO注释放在xml中?

我想知道是否有一种方法可以在android中评论部分xml代码,以便它们稍后会出现在android studio的TODO列表中? 我正在使用android studio 0.8.2。