Stathis001 / Tourist_Guide

0 stars 0 forks source link

Έρευνα για το πως είναι δυνατή η υλοποίηση ενός Button επιλογής γλώσσας . #37

Closed Stathis001 closed 7 months ago

Stathis001 commented 7 months ago

Αν είναι εφικτό μετά το άτομο/α που το έχουν αναλάβει προχωρούν στην υλοποίησή του.

Argiris2000 commented 7 months ago

Η υλοποίηση ενός Button για την επιλογή γλώσσας σε ένα Android app μπορεί να γίνει με διάφορους τρόπους, ανάλογα με τις απαιτήσεις του έργου σας. Εδώ παρουσιάζω μια απλή προσέγγιση χρησιμοποιώντας το Button και την κλάση Locale για την αλλαγή της γλώσσας.

Πρώτα-πρώτα, προσθέστε ένα Button στο αρχείο XML της διάταξής σας (π.χ., start_screen.xml):

<Button android:id="@+id/languageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Επιλογή Γλώσσας" android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@id/startButton" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> Στη συνέχεια, στο αρχείο MainActivity.java ή το αντίστοιχο αρχείο Java της δραστηριότητάς σας, προσθέστε τον κώδικα για την αλλαγή της γλώσσας όταν το Button πατηθεί: java import android.content.res.Configuration; import android.os.Bundle; import android.view.View; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; import java.util.Locale;

public class MainActivity extends AppCompatActivity {

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

    Button languageButton = findViewById(R.id.languageButton);
    languageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Καλέστε τη μέθοδο για την αλλαγή της γλώσσας
            changeLanguage("en"); // Εδώ χρησιμοποιείται η κωδική ονομασία για τα Αγγλικά ("en")
        }
    });
}

// Μέθοδος για την αλλαγή της γλώσσας
private void changeLanguage(String languageCode) {
    Locale locale = new Locale(languageCode);
    Locale.setDefault(locale);

    Configuration configuration = new Configuration();
    configuration.setLocale(locale);

    getResources().updateConfiguration(configuration, getBaseContext().getResources().getDisplayMetrics());

    // Εδώ μπορείτε να ξανα-φορτώσετε τη δραστηριότητά σας για να εφαρμοστεί η αλλαγή
    recreate();
}

} Αυτός ο κώδικας χρησιμοποιεί την κλάση Locale για να ορίσει τη γλώσσα και την κλάση Configuration για να αλλάξει τη γλώσσα των πόρων. Τέλος, η μέθοδος recreate() επαναφορτώνει τη δραστηριότητά σας, εφαρμόζοντας τις αλλαγές στη γλώσσα.