Как использовать String для метки регистра в выражении switch - PullRequest
1 голос
/ 29 марта 2020

Я пытаюсь выяснить, как поместить строку в метку регистра в этом операторе switch, чтобы она работала и на других языках. Вот мой код в настоящее время.

Или, если есть лучший способ кодировать его, чтобы при использовании других языков кнопка все равно работала

if (profileid.equals(firebaseUser.getUid())) {
        edit_profile.setText(R.string.edit_Profile_Button);
    } else {
        checkFollow();
        saved_photos.setVisibility(View.GONE);
        my_photos.setVisibility(View.GONE);
    }
    edit_profile.setOnClickListener(v -> {
        String btn = edit_profile.getText().toString();
        switch (btn) {
            case "Edit Profile":
                startActivity(new Intent(getContext(), EditProfileActivity.class));
                break;
            case "support":
                FirebaseDatabase.getInstance().getReference().child("Support").child(firebaseUser.getUid())
                        .child("supporting").child(profileid).setValue(true);
                FirebaseDatabase.getInstance().getReference().child("Support").child(profileid)
                        .child("supporters").child(firebaseUser.getUid()).setValue(true);
                addNotifications();
                break;
            case "supporting":
                FirebaseDatabase.getInstance().getReference().child("Support").child(firebaseUser.getUid())
                        .child("supporting").child(profileid).removeValue();
                FirebaseDatabase.getInstance().getReference().child("Support").child(profileid)
                        .child("supporters").child(firebaseUser.getUid()).removeValue();
                break;
        }
    });

1 Ответ

2 голосов
/ 29 марта 2020

Вы должны использовать файл .properties для хранения меток на разных языках для ключа, т. Е. Ключ будет оставаться одинаковым для каждого языка, но значение будет указываться c для языка, например, имя вашего файла свойств для Английский sh равен myapps_en.properties, а для немецкого - myapps_en.properties. В обоих файлах ключи будут одинаковыми, но значения будут указываться c для языка.

Теперь вы можете использовать ключи (вместо значений) в case.

Вы можете проверить this для примера того, как локализация работает с использованием .properties файлов.

...