小编rai*_*san的帖子

如何获取提供的字符串翻译列表?

背景

我为我的应用创建了两个翻译- values-envalues-fr-。我想让用户在UI中更改应用语言。因此,我使用Locale.getAvailableLocales();方法使用系统的可用语言环境创建并填充了微调器:

Spinner languageSpinner = (Spinner)findViewById(R.id.spinnerLanguage);
Locale[] locales = Locale.getAvailableLocales();
String[] langs = new String[locales.length];
for (int i = 0 ; i < locales.length ; i++ ){
    // display a more readable language name like "English (USA)"
    langs[i] = locales[i].getDisplayName();
}
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,langs);
languageSpinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

上面的代码将为我提供当前设备中的所有可用语言环境。由于列表很长,可能会使我的用户感到困惑,所以我想显示翻译时提供的语言环境。

编辑:在这里问类似的问题,评论表明没有直接的方法。

尽管我可以向微调器提供硬编码的数据,但这是使整个过程动态化的更好方法。

有没有办法在运行时获得可用的翻译?

理想的方法示例是:getTranslationList();最终返回资源中可用翻译语言的数组,例如:{"en","fr"}{"values", "values-en", "values-fr"}

java android localization android-resources android-studio

5
推荐指数
0
解决办法
486
查看次数

如何解决paho mqtt客户端的异步连接问题?

背景

我一直在为一个项目使用 MQTT,但遇到了一个奇怪的问题。我paho用作我的 MQTT 客户端和VerneMQ代理。

VerneMQ 代理服务已启动并正在运行,我可以通过 runnnig 确认这一点,netstat并且我可以看到该127.0.0.1:1883条目处于LISTENING模式中。

这是我的客户端代码:

public class Producer implements MqttCallback {

    private String brokerUri;
    private String clientId;

    public Producer(String brokerUri, String clientId){
        this.brokerUri = brokerUri;
        this.clientId = clientId;
    }

    public void doProduce(String topic, String payload){
        MemoryPersistence memoryPersistence = new MemoryPersistence();

        try {
            MqttAsyncClient mqttAsyncClient = new MqttAsyncClient(brokerUri, clientId, memoryPersistence);
            MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
            mqttConnectOptions.setCleanSession(true);
            mqttAsyncClient.setCallback(this);
            mqttAsyncClient.connect(mqttConnectOptions);
            MqttMessage mqttMessage = new MqttMessage();
            mqttMessage.setPayload(payload.getBytes());
            mqttAsyncClient.publish(topic, mqttMessage); …
Run Code Online (Sandbox Code Playgroud)

java asynchronous mqtt paho

2
推荐指数
1
解决办法
5051
查看次数

SIGINT 未在此范围内声明

背景

我正在尝试为在 Raspberry 3 上运行的 Rasbian 构建一个示例 REST api 应用程序。我使用cpprestsdk.

示例包含以下头文件:

#include <condition_variable>
#include <mutex>
#include <iostream>

static std::condition_variable _condition;
static std::mutex _mutex;

namespace cfx {
    class InterruptHandler {
    public:
        static void hookSIGINT() {
            signal(SIGINT, handleUserInterrupt);        
        }

        static void handleUserInterrupt(int signal){
            if (signal == SIGINT) {
                std::cout << "SIGINT trapped ..." << '\n';
                _condition.notify_one();
            }
        }

        static void waitForUserInterrupt() {
            std::unique_lock<std::mutex> lock { _mutex };
            _condition.wait(lock);
            std::cout << "user has signaled to interrup program..." << '\n';
            lock.unlock();
        } …
Run Code Online (Sandbox Code Playgroud)

makefile cmake c++11 raspbian cpprest-sdk

2
推荐指数
1
解决办法
2763
查看次数