小编jam*_*esc的帖子

Android应用程序域名是否用于除了唯一标识应用程序之外的任何内容?

我正在开始我的第一个Android应用程序,在阅读之后我明白为了唯一地识别应用程序需要Android应用程序所需的反向域名,但除了唯一标识应用程序之外,应用程序域名是否用于其他任何内容?

具体来说我很想知道

1)为应用程序内的活动使用不同域名的后果(特征或错误?)

2)用于网站的注册域名是否有任何关系?

3)填写我缺乏知识的任何其他片段:)

android

9
推荐指数
1
解决办法
1万
查看次数

Android,图书馆项目中的内容提供商

我有一个库项目,为许多需要相同数据库结构和功能的应用程序提供基本代码,我正在寻找实现它的最佳方法.我主要关心的是如何提供非静态权限,以便我可以使用使用该库的应用程序的包名称来覆盖它.

所以在库项目中我想我可以将以下常量更改为静态方法,这些方法将接受允许我从资源字符串或context.getPackageName方法获取权限的上下文

图书馆项目模型

    public static final class Questions implements BaseColumns {
//      public static final Uri CONTENT_URI =
//          Uri.parse("content://" + Config.AUTHORITY + "/questions");
//  use getAuthority instead which in turn will just get the package ae. Will this work?
        public static Uri getContentUri(Context c){
            return Uri.parse("content://" + getAuthority(c) + "/questions");
        }
    ...
    }

public static String getAuthority(Context c){
    return c.getPackageName + ".QuizProvider";
}
Run Code Online (Sandbox Code Playgroud)

图书馆项目内容提供者

public class QuizProvider extends ContentProvider {

//    private SQLiteDatabase mDB;

    private static final String TAG …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider

9
推荐指数
1
解决办法
5510
查看次数

如何设置操作栏菜单组的可见性?

UPDATE

最初我使用ActionBarSherlock我已经使用原生的android操作栏创建了一个全新的项目来测试这个,我仍然遇到同样的问题.

我成功地显示/隐藏了项目而不是组.我很快得出结论,ActionBar中存在一个错误,无法以编程方式设置组的可见性

更新结束

给出以下菜单访问Group时,我得到一个空指针异常

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@+id/action_settings"
        android:title="@string/settings"
        android:orderInCategory="100"
        android:showAsAction="never"/>

        <group android:id="@+id/mnu_text_group"
           android:visible="false">
            <item android:id="@+id/mnu_text_type"
                android:enabled="true" 
                android:visible="true"
                android:icon="@drawable/ic_action_text_icon"
            android:showAsAction="always"> 
            </item>
            <item android:id="@+id/text_color"
                android:enabled="true" 
                android:visible="true" 
                android:showAsAction="always" 
                android:icon="@drawable/ic_action_color_line">
            </item>
        </group>        
    <item android:id="@+id/mnu_images"
...
Run Code Online (Sandbox Code Playgroud)

在我所拥有的相关活动的onPrepareOptionsMenu中

public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem mnuTextGroup = menu.findItem(R.id.mnu_text_group);
    mnuImage.setEnabled(mEnableImageMenu);
    mnuTextGroup.setVisible(false);
    ...
Run Code Online (Sandbox Code Playgroud)

调用mnuTextGroup.setVisible(false);引发空指针异常

但是,通过更改查找方法以查找组内的项目工作正常,MenuItem mnuTextGroup = menu.findItem(R.id.mnu_text_type);但显然这仅适用于特定项目.我知道组的设计正是为了这个目的,能够设置组的可见性并启用/禁用组内的所有项目,但我一直无法找到以编程方式执行此操作的方法.

android actionbarsherlock

9
推荐指数
1
解决办法
1万
查看次数

如何设置android:background ="?android:attr/selectableItemBackground"?

我该如何以android:background="?android:attr/selectableItemBackground""编程方式完成?

我试过了mView.setBackgroundResource(android.R.attr.selectableItemBackground);,但没用.

java xml android

9
推荐指数
1
解决办法
3432
查看次数

nginx 权限被拒绝访问确实存在于正确位置的 puma 套接字

在运行 Ubuntu 21.10 impish 的 Digital Ocean Droplet 上,我正在将一个简单的 Rails 7.0.0.alpha2 应用程序部署到生产环境。我将 nginx 设置为反向代理服务器,以与充当 Rails 服务器的 Puma 进行通信。

\n

我希望使用 systemctl 将 puma 作为服务运行,而无需 sudo root 权限。为此,我在位于 的用户主文件夹中设置了 puma 服务~/.config/systemd/user,该服务已启用并按我期望的方式运行。

\n
systemctl status --user puma_master_cms_production\n
Run Code Online (Sandbox Code Playgroud)\n

报告如下

\n
\xe2\x97\x8f puma_master_cms_production.service - Puma HTTP Server for master_cms (production)\n     Loaded: loaded (/home/comtechmaster/.config/systemd/user/puma_master_cms_production.service; enabled; vendor preset: enabled)\n     Active: active (running) since Thu 2021-11-18 22:31:02 UTC; 1h 18min ago\n   Main PID: 1577 (ruby)\n      Tasks: 10 (limit: 2338)\n     Memory: 125.1M\n        CPU: 2.873s\n     CGroup: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails nginx puma

9
推荐指数
1
解决办法
2142
查看次数

如何在 Rails 7 引擎中使用 Tailwind CSS gem?

如何在轨道发动机中使用顺风?根据文档,向 Rails 生成器提供 css 参数应该可以工作

使用 Rails 7.0.2.2 引擎生成

rails plugin new tailtest --mountable --full -d postgresql --css tailwind
Run Code Online (Sandbox Code Playgroud)

这会使用 Postgresql 生成引擎,但对 tailwind 根本不起作用,并且遵循手动安装说明也会失败。

根据文档运行,bundle add tailwindcss-rails将 tailwind 添加到 gemfile 而不是引擎 tailtest.gemspec 因此,在将依赖项添加到 gemspec 之后

spec.add_dependency "tailwindcss-rails", "~> 2.0"
Run Code Online (Sandbox Code Playgroud)

并且运行bundle install确实安装了引擎,但是其余的手动安装失败

然后将 require 添加到 lib/engine.rb

require "tailwindcss-rails"
module Tailtest
  class Engine < ::Rails::Engine
    isolate_namespace Tailtest
  end
end
Run Code Online (Sandbox Code Playgroud)

然后运行安装过程失败

rails tailwindcss:install
Resolving dependencies...
rails aborted!
Don't know how to build task 'tailwindcss:install' (See the list …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-engines tailwind-css ruby-on-rails-7

8
推荐指数
2
解决办法
2127
查看次数

Rails 4 i18n,如何翻译子域用于语言环境的路由

我正在使用子域来确定Rails 4网站中的区域设置.我有一个完全按照我想要的方式使用区域设置切换器,但现在我需要翻译路线,我不确定最好的方法.

我查看了https://github.com/kwi/i18n_routing i18n路由gem,但这不适用于子域,它似乎通过添加/ locale来改变路径,这不是我需要的.

其他宝石似乎与Rails 4过时了.

编辑

基本上我希望能够使用相同的视图助手,但是更改URL以使用所选子域反映的任何语言.这只是路线翻译.

我有语言特定的模板,我可以生成语言的导航模板,但我真的不想担心改变erb路径和url erb标签

结束编辑

来自routes.rb的示例

scope module: 'countries', shallow: true do

  get 'south_american', to: 'south_america#index', as: :south_america
  scope module: 'south_america' do
    get 'south-america-weather', to: 'weather#index', as: :south_america_weather
    get 'south-america-gps-maps', to: 'gps#index', as: :south_america_gps
    get 'south-america-accommodation', to: 'hotels#index', as: :south_america_hotels
    get 'south-america-vacations', to: 'vacations#index', as: :south_america_vacations
    get 'south-america-facts', to: 'facts#index', as: :south_america_facts
  end
Run Code Online (Sandbox Code Playgroud)

以south_america_hotels_path为例,将生成一个url

南美 - 住宿

这很好,但我怎么翻译这个,以便当我在西班牙子域名south_america_hotels_path时将生成以下网址

酒店预订烯sudamerica

UPDATE

此外,这对于一个url而不仅仅是一个路径是如何工作的,以便生成south_america_hotels_url

en.some_site /南美,住宿

当我在西班牙的子域上时,我会得到

es.some_site /酒店预订烯sudamerica

对于涉及的不同语言环境等等.

我很乐意使用yml文件进行url的翻译或在routes.rb文件中定义其他路由,或者是一个选项,但我更喜欢在routes.rb中定义url,但我无法找到提供相同语言特定URL的方法:作为基于子域的路径/ url选项.

针对先前的答复进行更新和进一步澄清.

更改网址不是一个选项,他们需要匹配现有的网址.我只需要知道如何从视图助手的角度转换它们,而不必更改视图助手.

routing ruby-on-rails rails-i18n ruby-on-rails-4

6
推荐指数
1
解决办法
6721
查看次数

在 capistrano 中预编译资产时找不到 Rails 6.1 命令 webpack

我在使用 rake 资产时遇到了 capistrano/sshkit 问题:调用我的 capistrano apply_theme 任务时未找到预编译生成命令 webpack

我已将 bin 文件夹签入源代码管理,并且我有节点版本 v12.18.1 和纱线版本 1.22.4

    set :rvm_map_bins, [ 'rake', 'gem', 'bundle', 'ruby', 'puma', 'pumactl', 'webpack' ]
    
    namespace :deploy do
    
      desc 'Updating theme'
      task apply_theme: [:set_rails_env] do
        on roles(:app) do
          within release_path do
            with rails_env: fetch(:rails_env) do
              execute :rake, 'write_css'
              execute :rake, 'assets:precompile'
            end
          end
        end
      end
#etc...
Run Code Online (Sandbox Code Playgroud)

这在从 rails 6.0.3.2 更新到 6.1 alpha 之前已经有效

直接在服务器上运行时的以下工作

RAILS_ENV="production" bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

并生成

Compiling...
Compiled all packs in /home/comtechrcc/rawdoncc/releases/20200629090644/public/packs
Hash: b1c4524d882fd4ab2775
Version: …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails ruby-on-rails-6

6
推荐指数
2
解决办法
1720
查看次数

内容提供程序中的Android自定义方法获取表中的记录数?

我有一个访问我的数据库的内容提供程序,如果你需要处理记录集,这很好,但我需要一个方法来返回一个表示表中记录数的整数

该方法看起来像这样

public long getRecordCount(String TableName) {
    SQLiteDatabase mDatabase = mOpenHelper.getReadableDatabase();
    String sql = "SELECT COUNT(*) FROM " + TableName;
    SQLiteStatement statement = mDatabase.compileStatement(sql);
    long count = statement.simpleQueryForLong();
    return count;
}
Run Code Online (Sandbox Code Playgroud)

但我无法在内容提供商中找到任何使用此方法(或任何其他不返回游标的方法),那么放置此方法的最佳位置以及如何调用它?

显然,我可以选择使用托管查询选择所有记录并使用cursor.count结果,这是一个非常糟糕的选择,但这是处理这个特定需求的一种非常低效的方法

谢谢

database android android-contentprovider

5
推荐指数
1
解决办法
3599
查看次数

android,UTF8 - 如何确保 UTF8 用于共享首选项

如何确保共享首选项菜单使用 UTF8?我有一个 android 首选项菜单,允许用户设置他们的名字等。

我需要知道如何将共享首选项中存储的数据转换为 UTF8 格式

首选项菜单使用 utf8 编码以 xml 格式布置在 res/xml 文件夹中名为 settings 的文件中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:key="@string/name_key"
        android:title="@string/hof_name_title"
        android:summary="@string/hof_name_summary"
        android:defaultValue="Anonymous" />
    <CheckBoxPreference
        android:key="@string/new_game_preference_key"
        android:title="@string/new_game_preference_title"
        android:summary="@string/new_game_preference_summary"
        android:defaultValue="false" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

处理这个问题的类是

public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // Unregister the listener whenever a key changes
        getPreferenceScreen().getSharedPreferences()
                .unregisterOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        // Set up …
Run Code Online (Sandbox Code Playgroud)

java android utf-8

5
推荐指数
1
解决办法
2964
查看次数