scroelble WebView und String Reusen extrahieren

  • Antworten:5
Petra Ritter
  • Forum-Beiträge: 81

09.05.2021, 13:51:09 via Website

Guten Tag,

Habe wiedermal zwei Fragen, bei den ich stecken bleibe.

  1. Ich verwende im meinem Projekt eine HTML-Datei die ich Alls asset ins Projekt eingebunden habe, Nun habe ich festgestellt das der Text in der lansscape Ansicht zu lang ist so, dass er unten abgeschnitten wird. Habe bisher nicht herausgefunden wie man Webwiews scroelble machen kann
    Hier dir betreffend Java respektive Layout Dateien:
    HeadersFragment.java
    fragment_headers.xml

  2. Wie extrahiert man aus der Datei HomeViewModel.java eine Sting Ressource, damit man den den Text übersetzen kann?
    Es stellt sich überhaupt die Frage, ob das ViewModel Zeugs ersetzen soll. Ich kenne mich mit ViewModel noch nicht aus.

Besten Dank für Eure Bemühungen

Freundliche Grüsse aus der Schweiz

Petra Ritter

Kommentieren
Petra Ritter
  • Forum-Beiträge: 81

09.05.2021, 18:52:24 via Website

Guten Abend,

Habe zumindest für das 1. Problem eine Lösung gefunden.

Habe android:layout_width="" und android:layout_height="" der WebView auf wrap_content gesetzt gehabt statt auf match_parent. Jetzt zeigt mir den ganzen Text an.

Petra

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.05.2021, 11:22:40 via Website

Hallo Petra,

für das 2. Problem schaust du dir mal die Resources an.
https://developer.android.com/guide/topics/resources/localization#java
Wenn du schon Sprachdateien in den Resources hast dann müsstest du den übersetzen Text eigentlich über den Context rausbekommen:
https://developer.android.com/guide/topics/resources/string-resource
also context.getResources().getString(...)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Petra Ritter
  • Forum-Beiträge: 81

13.05.2021, 12:44:34 via Website

Hallo Pascal,

Ich stehe irgendwie auf dem Schlauch. :-(

Dieser Code HomeViewModel produziert folgende Fehlermeldung "Cannot resolve method 'content' in 'HomeViewModel'" welche nicht ganz verstehe.

Android Studio bietet mir mir auch an eine Methode zu erstellen. Ich verstehe aber nicht wie sie Methode aussehen muss. Kannst Du mir bitte eeinen Hinweiss geben, damit ich drauf komme?

Achte bitte nicht auf den restlichen Code, der sieht sicher ziemlich chaotisch aus, das ist aber nur meine "Test" App, in welcher ich Sachen Implemetiere bevor ich sie in der "produktiven" App Implantate.

Noch eine andre Frage.
Meine App unterstützt die Sprachen Englisch und Deutsch. Momentan habe ich für drei Ressourcen-Files Je eines für die Schweiz, Deutschland und Österreich. Die Defaut-Sprache ist Englisch. Nun frage ich mich, ob ich für alle drei Länder wirklich ein Ressourcen-File brauche oder, ob Android, sobald ein Gerät auf Deutsch eingestellt ist, dies erkennt und einfach das vorhanden Ressourcen-File nimmt?

Ich wünsche eine schöne Auffahrt.

Freundliche Grüsse

Petra Ritter

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

13.05.2021, 14:36:27 via Website

Hallo
Du willst eine Ressource einen Integer zurückgeben gibst aber einen String zurück.

   public class HomeViewModel extends ViewModel {
        private MutableLiveData<Integer> mText;
        public HomeViewModel() {
        mText = new MutableLiveData<>();
        mText.setValue(R.string.welcome);

    public LiveData<Integer> getText() {
        return mText;
    }
}

im Fagment

homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<Integer>() {
        @Override
        public void onChanged(@Nullable Integer s) {
            textView.setText(s);
        }
    });

Ja du brauchst für jede Sprache eine String datei.
Ja Android kann es selber auswählen.

https://www.tutlane.com/tutorial/android/android-localization-multi-language-with-examples
https://www.androidhive.info/2014/07/android-building-multi-language-supported-app/

— geändert am 13.05.2021, 15:00:31

Hilfreich?
Pascal P.
Kommentieren