Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะเปลี่ยนภาษาของแอพได้อย่างไรเมื่อผู้ใช้เลือกภาษาใน Android?


ตัวอย่างนี้สาธิตวิธีการเปลี่ยนภาษาของแอปเมื่อผู้ใช้เลือกภาษา

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

  

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

<ล่วงหน้า>นำเข้า android.content.Intent;นำเข้า android.content.res.Configuration;นำเข้า android.content.res.Resources;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.os.Bundle;นำเข้า android.util .DisplayMetrics;นำเข้า android.view.View;นำเข้า android.widget.AdapterView;นำเข้า android.widget.ArrayAdapter;นำเข้า android.widget.Spinner;นำเข้า android.widget.Toast;นำเข้า java.util.ArrayList;นำเข้า java.util รายการนำเข้า java.util.Locale; MainActivity คลาสสาธารณะขยาย AppCompatActivity { สปินเนอร์สปินเนอร์; สถานที่สถานที่; สตริง currentLanguage ="en", currentLang; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); currentLanguage =getIntent().getStringExtra(currentLang); สปินเนอร์ =findViewById(R.id.spinner); List รายการ =ใหม่ ArrayList<>(); list.add("เลือกภาษา"); list.add("ภาษาอังกฤษ"); list.add("สเปน"); list.add("ฝรั่งเศส"); list.add("ภาษาฮินดี"); ArrayAdapter adapter =new ArrayAdapter<>(นี่ R.layout.support_simple_spinner_dropdown_item รายการ); adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter (อะแดปเตอร์); spinner.setOnItemSelectedListener (AdapterView.OnItemSelectedListener ใหม่ () { @Override public void onItemSelected (AdapterView parent, ดูมุมมอง, ตำแหน่ง int, id แบบยาว) { สวิตช์ (ตำแหน่ง) { กรณีที่ 0:แตก; กรณีที่ 1:setLocale ("en "); break; case 2:setLocale("es"); break; case 3:setLocale("fr"); break; case 4:setLocale("hi"); break; } } @Override public void onNothingSelected(AdapterView) ผู้ปกครอง) { } }); } โมฆะส่วนตัว setLocale (String localeName) { if (!localeName.equals (currentLanguage)) { locale =สถานที่ใหม่ (localeName); ทรัพยากร res =getResources (); DisplayMetrics dm =res.getDisplayMetrics (); การกำหนดค่าคอนฟิก =res.getConfiguration(); conf.locale =สถานที่; res.updateConfiguration (conf, dm); เจตนารีเฟรช =เจตนาใหม่ (นี่ MainActivity.class); refresh.putExtra (currentLang, ชื่อสถานที่); startActivity(รีเฟรช); } อื่น { Toast.makeText(MainActivity.this, "เลือกภาษาแล้ว!", Toast.LENGTH_SHORT).show(); } } โมฆะสาธารณะ onBackPressed () { เจตนาเจตนา =เจตนาใหม่ (Intent.ACTION_MAIN); Intent.addCategory(Intent.CATEGORY_HOME); Intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(เจตนา); เสร็จสิ้น(); System.exit(0); }}

ขั้นตอนที่ 4 − สร้างค่า es ค่า fr ค่า hi และเพิ่มรหัสต่อไปนี้ -

values-hi/strings.xml

 ตัวอย่าง धन्यवाद

values-fr/strings.xml

 ตัวอย่าง Je vous remercie

values-es/strings.xml

 ตัวอย่าง ขอบคุณ

strings.xml

 ตัวอย่าง ขอบคุณ

ขั้นตอนที่ 5 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

     <หมวดหมู่ android:name=" android.intent.category.LAUNCHER" />   

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิก Runicon จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -

จะเปลี่ยนภาษาของแอพได้อย่างไรเมื่อผู้ใช้เลือกภาษาใน Android?

จะเปลี่ยนภาษาของแอพได้อย่างไรเมื่อผู้ใช้เลือกภาษาใน Android?