RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-325362

Anton Pankratov's questions

Martin Hope
Anton Pankratov
Asked: 2020-07-06 13:07:29 +0000 UTC

选择不同的应用区域设置后无法翻译后面的片段

  • 0

遇到这样的问题。在我的应用程序中,我实现了本地化,但它应该与系统的语言环境分开为我工作。我在教程的帮助下编写了 LocaleHelper 类

import android.content.Context
import android.os.Build
import com.example.core.utils.preferences.AppSharedPreferences
import timber.log.Timber
import java.util.*

class LocaleHelper(private val appPreferences: AppSharedPreferences) {

   fun onAttach(context: Context): Context? {
       val lang = getPersistedData(Locale.getDefault().language)
       Timber.d("Locale/LocaleHelper.onAttach.lang = $lang")
       return setLocale(context, lang!!)
   }

    fun onAttach(context: Context, locale: String): Context? {
        val lang = getPersistedData(locale)
        return setLocale(context, lang!!)
    }

    fun setLocale(context: Context, language: String): Context? {
        persist(language)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            return updateResources(context, language)
        }
        return updateResourcesLegacy(context, language)
    }

    private fun getPersistedData(locale: String): String? {
        Timber.d("Locale/LocaleHelper.getPersistData.lang = $locale")
        return appPreferences.loadChangingByUserLocale(locale)
    }

    private fun persist(language: String) {
        appPreferences.saveChangingByUserLocale(language)
    }

    private fun updateResources(context: Context, language: String): Context? {
        val appLocale = Locale(language)
        val configuration = context.resources.configuration

        Locale.setDefault(appLocale)
        configuration.apply {
            setLocale(appLocale)
            setLayoutDirection(appLocale)
        }
        return context.createConfigurationContext(configuration)
    }

    @Suppress("DEPRECATION")
    private fun updateResourcesLegacy(context: Context, language: String): Context? {
        val appLocale = Locale(language)
        val resource = context.resources
        val configuration = resource.configuration

        Locale.setDefault(appLocale)
        configuration.locale = appLocale
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            configuration.setLayoutDirection(appLocale)
        }
        resource.updateConfiguration(configuration, resource.displayMetrics)
        return context
    }
}

在主页上,我制作了一个下拉列表,点击即可打开

私人乐趣 preparePopupWindowLangs(): PopupWindow? { val popup = PopupWindow(view!!.context).apply { width = 250 height = WindowManager.LayoutParams.WRAP_CONTENT isOutsideTouchable = true isFocusable = true contentView = contentList() } logger.preparePopupWindow() 返回弹出窗口 }

    private fun contentList(): ListView {
        val localesAdapter = LanguagesPopupAdapter(context!!, prepareLocalesList(viewModel.localesNames))
        localesAdapter.notifyDataSetChanged()
        val listView = ListView(context).apply {
            adapter = localesAdapter
            onItemClickListener = popupOnItemClick()
        }
        return listView
    }

    private fun prepareLocalesList(@StringRes array: Array<Int>): List<String> {
        val locales: MutableList<String> = mutableListOf()
        array.forEachIndexed { index, locale ->
            locales.add(index, resources.getString(locale))
        }
        return locales
    }

    private fun popupOnItemClick(): OnItemClickListener {
        val itemClick = OnItemClickListener { parent, view, position, id ->
            val fadeInAnimation: Animation =
                AnimationUtils.loadAnimation(context, R.anim.fragment_fade_enter)
            fadeInAnimation.duration = 10
            view!!.startAnimation(fadeInAnimation)
            val selectedItemText = view.findViewById<TextView>(R.id.language_tv).text.toString()
            langs_popup.text = selectedItemText
            popup!!.dismiss()
            changeLocale(viewModel.localesIndexes[position])
        }
        return itemClick
    }

通过从列表中选择,我更改了文本

 private fun changeTextAfterLanguageSelection(lang: String) {
        val context = viewModel.localeHelper.setLocale(context!!, lang)
        val resources = context!!.resources
        login_tv.text = resources.getString(R.string.field_header_login)
        login_et.hint = resources.getString(R.string.hint_login)
        password_tv.text = resources.getString(R.string.field_header_password)
        password_et.hint = resources.getString(R.string.hint_password)
        auth_progress_button.setButtonName(context, R.string.btn_enter)
        prepareLocalesList(viewModel.localesNames)
        setPopupTitleText()
    }

我还添加了一种方法来更改片段中的文本

override fun onAttach(context: Context) {
        super.onAttach(viewModel.localeHelper.onAttach(context)!!)
    }

添加了在活动中为应用程序设置区域设置的方法

 override fun attachBaseContext(newBase: Context?) {
        super.attachBaseContext(localeHelper.onAttach(newBase!!, appPreferences.loadChangingByUserLocale("ru")!!)))
   }

结果,我得到以下信息:在具有 API 22 的模拟器中,一切正常,但已经在 API 29 上,当切换到另一个片段时,不执行翻译,而只执行应用程序时的语言环境已推出作品。我知道选择语言时可以选择重新启动活动,但这种方法不适合我的任务。我正在实施 SingleActivity 技术。

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-12-04 16:31:35 +0000 UTC

如何确定启动应用程序的 android 桌面的背景颜色?

  • 1

在我的应用程序中,我需要实现一种能够在启动之前确定什么颜色(主)桌面背景/壁纸的方法。我不知道该往哪个方向看。谷歌搜索没有给出想要的结果。

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-11-07 19:21:30 +0000 UTC

在 if-else 条件下是否可以避免大量代码?

  • 0

有一个任务:如果双字输入String接收到“”或“”,则打印null null。

我以这种方式解决了这个问题:

if (fullText == "" || fullText == " ") {
    firstWord = null
    lastWord = null
} else if (firstWord == "" || firstWord == " ") {
    firstWord = null
} else if (lastWord == "" || lastWord == " ") {
    lastWord = null
}

问题:如果不求助于如此庞大的结构,是否可以做不同的事情?

kotlin
  • 2 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-11-06 17:20:24 +0000 UTC

backstack 中显示的圆形应用程序图标在哪里?

  • 2

在此处输入图像描述

Android Studio 中的圆形图标(图中的 Google 图标)在哪里?我通过 Image Asset 在我的应用程序中上传了一个自定义图标。除了这个地方,我的图标在所有地方都显示,这是带有 android 头的标准图标。

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-10-07 22:30:58 +0000 UTC

如何制作自定义 Spinner?(里面的照片)

  • 0

微调器

我设法使传出列表出现在初始行的顶部,但我需要它低于它(如图所示)。这个怎么做?以及如何将箭头设置为向右,这样当您单击微调器时,它会动画地向下转动?

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-10-03 21:39:31 +0000 UTC

每种布局的资源需求水平如何?

  • 4

在开发过程中,我遇到了一个问题:每个布局需要多少资源?(线性、相对、制表符、约束、协调器)

在复杂的应用程序视图中,使用极其轻量级的布局是否合理?

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-09-28 14:46:01 +0000 UTC

如何在 Room 中制作几个参数相似的插入方法

  • 0

您需要在 RoomDao 中创建两个方法:

@Insert
void insert(List<Model1> list1);

@Insert
void insert(List<Model2> list2);

但是在这种情况下,它会突出显示第一个错误的方法,其中显示:

both methods have same erasure

如何纠正?

android
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-09-23 19:42:08 +0000 UTC

动态片段创建

  • 0

我有以下计划的任务:有必要根据来自服务器的元素数量创建片段。假设我有 20 个元素,每个元素都需要一个片段。在我查看当前一个后,我将通过按钮在它们之间切换。

答案是:

{
  "0": {
         "id":"1",
         "title":"title",
       },

  "1": {
          "id":"2",
          "id":"title2"
       }
}

元素 - 标记为“0”、“1”等的对象。

我是否需要事先将传入的元素列表保存在数据库中并从中按顺序检索每个元素?

java
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-09-11 15:30:45 +0000 UTC

哪种标记工作得更快:来自 XML 文件还是以编程方式在 java 文件中生成?

  • 0

我认为它仍然来自 XML 文件,因为对象已经提前创建,但我承认原因可能不同。

如果是这样,你能帮我解决这个问题吗?

作为比较的参考,我考虑到您需要以列出的方式制作 2 个屏幕的那一刻,但要让它们显示相同的内容。

在什么情况下使用这个或那个方法并不重要,我只需要知道比较速度。

java
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-09-05 15:29:06 +0000 UTC

如何删除状态栏?

  • 1

在应用程序开发中,您需要删除所有窗口中的 StatusBar(右上角带有时钟的状态栏 - 屏幕的最上边缘)。可能吗?

android
  • 3 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-02-17 15:21:29 +0000 UTC

在工具栏中创建菜单。除了使用 drawable.xml 还有其他选择吗?

  • 1

在写项目的时候,遇到过这样的情况。我有几个活动,每个活动都有相同类型的工具栏。我不想在每一行都写相同的行,因此我创建了一个抽象类 BaseActivity。其中的 onCreate 方法运行良好,但出于某种原因,onCreateOptionsMenu 方法不想在从 BaseActivity 继承的每个活动中显示我的 3 个正确图标。这个方法简直是空!是否有另一种方法来创建菜单,或者我是否需要添加一些东西才能显示图标?菜单本身是用经典的方式创建的——通过带有 item 的 drawable。抽象类代码:

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;

public abstract class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
    }
}
java
  • 1 个回答
  • 10 Views
Martin Hope
Anton Pankratov
Asked: 2020-02-16 21:15:00 +0000 UTC

如何在工具栏左侧(徽标)制作格式为“00:00”的数字时钟?

  • 4

有一个问题需要解决。在应用程序中,您需要确保在工具栏的左侧显示了一个数字时钟,该时钟显示了某个时间值的变化。有可能实现这一点吗?

java
  • 3 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5