0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[ Android Studio ] ボタンによる言語切替2(未完成)

Posted at

引き続きボタンによる言語切替の実装を行った。

##サンプルプログラム
 以下が今回実装したプログラムである。

MainActivity.java

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Locale;


public class MainActivity extends Activity {

    //言語設定用変数
    Locale locale = Locale.KOREA;
    String str = "";
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initializeLanguage();
    }

    /*
    日本語英語切替ボタンの実装
     */
    public void initializeLanguage() {

        //クリックを取得するボタン
        Button japaneseButton = (Button) findViewById(R.id.japaneseButton);
        Button englishButton = (Button) findViewById(R.id.englishButton);
        textView = (TextView) findViewById(R.id.textView);

        // 言語の切替え
        japaneseButton.setOnClickListener((View v3) -> {
            Locale.setDefault(Locale.JAPAN);
        });

        englishButton.setOnClickListener((View v4) -> {
            Locale.setDefault(Locale.ENGLISH);
        });

        textView.setText(str);
        changeLanguage();
    }

    public void changeLanguage(){
        //locale = Locale.getDefault();
        String lang = locale.getLanguage();
        if (locale.equals(Locale.JAPAN)) {
            str = "こんにちは";
        } else if (locale.equals(Locale.ENGLISH)) {
            str = "Hello";
        } else {
            str = "Hi";
        }
        textView.setText(lang);
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <Button
        android:id="@+id/englishButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="81dp"
        android:layout_marginTop="66dp"
        android:text="@string/englishButton"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/japaneseButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="233dp"
        android:layout_marginTop="68dp"
        android:text="@string/japaneseButton"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="175dp"
        android:layout_marginTop="195dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

strings.xml

<resources>
    <string name="app_name">ApplicationLanguageChange</string>
    <string name="englishButton">in English</string>
    <string name="japaneseButton">in Japanese</string>
</resources>

 onCreate → initializeLanguage → changeLanguageの順に呼び出している。
 changeLnaguageメソッドの最終行、setTextのlangはKoreaの引数がしていされているので、
"ko"が表示される。
image.png

 
 次回は日本語用のxmlファイルを作り、ボタンによる切替を実現する予定である。
以上。
 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?