Systemsprache auslesen?

  • Antworten:31
  • OffenNicht stickyNicht beantwortet

18.08.2012 16:31:29 via Website

Hallo,
ich habe schon wieder ein paar Probleme :D


1.
Da ich meine App gerne mehrsprachig machen will, würde ich gerne die Systemsprache auslesen lassen.
Aber leider habe ich bei Google nichts finden können wie man das macht.

2. Ich will eine Funktion machen die beim Start der App ausgeführt wird, gewisse Dinge macht (wie z.B inhalte einer Variable in einen Textview ausgeben) und wenn sie alles Ausgeführt hat wieder von neuem Anfängt.
Aber ich will das sie nebeibei läuft.
Kann mir vielleicht jemand sagen wie man das macht oder mir ein paar Links geben?

3. Leider habe ich auf meinen Thread betreffent dem Automatischen scrollen eines Scrollviews keine Antwort bekommen
Falls mir da jemand der das hier liest helfen kann währe mir sehr geholfen :)


Vielen Dank bereits im Vorraus!!!

Gelöschter Account

18.08.2012 17:16:39 via Website

Zu 1.): Locale.getDefault() und weitere statische Methoden.

ABER. Das Konzept der Mehrsprachigkeit ist in Android komplett vorhanden. Dazu musst Du normalerweise keine Locale abfragen. Es sei denn die Texte kommen aus einer Datenbank oder werden von einer sprachspezifischen Quelle gelesen. Texte in einer App werden in den Ressource Ordnern nach Sprachen sortiert:

Supporting different languages

Zu 2.): Bitte näher spezifizieren. Was verstehst Du unter "nebenbei" im Zusammenhang mit "Variable in einen Textview ausgeben"? Beides widerspricht sich. "Nebenbei" bedeutet "muss nicht unbedingt sichtbar sein". Soll ein Timer permanent etwas machen und, sollte eine Activity/Fragment sichtbar sein, dies anzeigen? Was soll passieren wenn Activity/Fragment nicht sichtbar sind?

— geändert am 18.08.2012 17:19:09

18.08.2012 17:27:22 via Website

Harald Wilhelm
Zu 1.): Locale.getDefault() und weitere statische Methoden.

ABER. Das Konzept der Mehrsprachigkeit ist in Android komplett vorhanden. Dazu musst Du normalerweise keine Locale abfragen. Es sei denn die Texte kommen aus einer Datenbank oder werden von einer sprachspezifischen Quelle gelesen. Texte in einer App werden in den Ressource Ordnern nach Sprachen sortiert:

Supporting different languages

Zu 2.): Bitte näher spezifizieren. Was verstehst Du unter "nebenbei" im Zusammenhang mit "Variable in einen Textview ausgeben"? Beides widerspricht sich. "Nebenbei" bedeutet "muss nicht unbedingt sichtbar sein". Soll ein Timer permanent etwas machen und, sollte eine Activity/Fragment sichtbar sein, dies anzeigen? Was soll passieren wenn Activity/Fragment nicht sichtbar sind?

Zu 1:
Ja das mit dem Ressource Ordnern hab ich schon gelesen, aber das was ich ausgeben will ist nicht in einer resource datei gespeichert (Ja ich weiß man sollte es eher anders amchen, aber ich tue mir so einfach leichter)

zu 2:
Also soweit ich gelernt habe läuft das Programm/die app ja alle befehle, anweisungen,etc von oben nach unten durch.
Wenn ich jz z.B eine endlosschleife mache mit z.B while(a!=1) und das a nie verändere geht das Programm/die App ja nie aus der schleife raus und alles was nach dem while kommt wird nie ausgeführt oder? (So habe ich es halt bis jz immer gelernt)

Aber ich will jetzt so eine Endlosschleife starten wenn das Programm startet und dann einfach die Endosschleife endlos laufen lassen aber währenddessen auch andere Dinge ausführen lassen.

Sry falls ich scheiße labbere, aber ich habe früher nur C & C++ gelernt und da haben wir sowas wie ich jz brauche nie gebraucht und darum weiß ich das jz nicht so genau.....

18.08.2012 17:48:03 via App

Hallo,
zu 1.) Auch wenn du dich damit leichter tust, wirst du es später mit Sicherheit bereuen. Lagere doch einfach alles aus, so hat es gleich Hand und Fuß.

zu 2.) Du musst einen neuen Thread starten, welcher nicht deinen Hauptthread blockiert. Entweder mittels einem einfachen Thread, oder einem Service (für längere Intervalle geeignet).

Liebe Grüße Maximilian

Vergesse nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag :grin: - Birthdays Website

18.08.2012 21:07:00 via Website

Danke, das war es was ich gesucht habe.
Ich habe jetzt mithilfe eines Video Tutorials versucht einen Thread zu starten der langsam eine int variable hochzählt und in einem TextView ausgibt.
Aber irgendwie tut sich nichts :(

habe ich was falsch gemacht?
1int test = 0;
2
3
4
5 @Override
6 public void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.main);
9 final TextView Tv = (TextView) findViewById(R.id.textView1);
10 final Thread MainLoop = new Thread()
11 {
12 public void MainLoop()
13 {
14 try{
15 boolean a = true;
16 while(a)
17 {
18 test++;
19 Tv.setText(test);
20 sleep(1000);
21 }
22
23 } catch(InterruptedException e){
24 e.printStackTrace();
25 }finally{
26
27 }
28 }
29 };
30
31
32 MainLoop.start();

18.08.2012 22:32:41 via Website

19.08.2012 18:10:45 via Website

Hm, ich glaube ich check das nicht ganz :(

Einen Thread zu machen der die int variable hochzählt, das habe ich mal geschaft (glaube ich).
Aber immer wenn ich den Inhalt der variable über ein TextView ausgeben will stürtzt die app ab.
Kann mir jemand sagen an was das liegt?

Den letzten Link habe ich mir auch angeschaut, habe aber nicht ganz verstanden für was das jetzt ist :(

19.08.2012 22:11:04 via App

Deine App läuft ja in einem anderen Thread, in welchem alle UI Elemente (auch deine TextView) gemanaged werden. Nun kannst du nicht einfach aus deinem anderen Thread auf deine TextView zugreifen.
Du musst das ganze im "UIThread" machen.
Google einfach mal nach runOnUiThread(), sind nur wenige Zeilen.

Liebe Grüße Maximilian

//edit: Bitte benutze doch mal das Logcat, hätte auch diese Frage erspart.

— geändert am 19.08.2012 22:12:08

Vergesse nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag :grin: - Birthdays Website

19.08.2012 23:46:32 via Website

Ok, nun ist es 100% tig sicher:
ICH BIN ZU BLÖD UM DAS ZUM LAUFEN ZU BRINGEN :(

ich habs jetzt mit runOnUiThread() gemacht, aber irgendwie stürtzt das immer noch ab :(

Könnte mir das vielleicht einer machen? (also das das über den UIThread gemacht wird)
Ich will nur den Inhalt der int variable "Test" im TextView Tv ausgeben.

Es währe mir damit wirklich riesig geholfen, den ich glaube ich schaff das nicht , ich bin einfach zu blöd ^^

— geändert am 19.08.2012 23:47:15

20.08.2012 10:51:09 via App

ExKcir
Wie vorher halt: Wenn ich den Inhalt der int Variable (die hochgezählt wird) im TextView ausgeben will stürtzt die App ab
Logcat?

Herzliche Grüße

Carsten

"Ich stehe nicht auf diese Art Frauen... Obwohl, sie war eine von denen, für die ein Mann schon mal seine Prinzipien fallen lassen konnte."

20.08.2012 11:57:26 via Website

Activity Manager (278)
Activity pause timeout for HistoryRecord{40fed4c0 com.ExKcirApps.meineapp/.MainActivity}

und

ActivityManager(278)
Force finishing activity com.ExKcirApps.meineapp/.MainActivity

Sind das die richtigen?

btw. wo findet man die Logcat fehlermeldungen eigentlich normal?
Ich suche sie mir immer mit Systemtuner :D

— geändert am 20.08.2012 11:59:13

20.08.2012 12:04:18 via Website

Ich würde dir mal empfehlen, solche elementaren Anfängersachen im Emulator auszuprobieren. Dann siehst du das Logcat direkt im Eclipse und kannst direkt an die Stelle springen (und noch viel wichtiger: debuggen).

Ansonsten gibt es eine ganze Menge Apps die das Logcat auslesen, filtern, durchsuchen etc. können. Ich benutze aLogcat.

— geändert am 20.08.2012 12:05:11

20.08.2012 15:15:22 via Website

André
Ich würde dir mal empfehlen, solche elementaren Anfängersachen im Emulator auszuprobieren. Dann siehst du das Logcat direkt im Eclipse und kannst direkt an die Stelle springen (und noch viel wichtiger: debuggen).

Ansonsten gibt es eine ganze Menge Apps die das Logcat auslesen, filtern, durchsuchen etc. können. Ich benutze aLogcat.
Naja, mit dem Emulator habe ich in letzter zeit so meine schwirigkeiten gehabt...
Also ich bleibe dann bei System Tuner (Bleibt für mich die beste App die es gibt *.*)

20.08.2012 15:18:26 via Website

ExKcir
André
Ich würde dir mal empfehlen, solche elementaren Anfängersachen im Emulator auszuprobieren. Dann siehst du das Logcat direkt im Eclipse und kannst direkt an die Stelle springen (und noch viel wichtiger: debuggen).

Ansonsten gibt es eine ganze Menge Apps die das Logcat auslesen, filtern, durchsuchen etc. können. Ich benutze aLogcat.
Naja, mit dem Emulator habe ich in letzter zeit so meine schwirigkeiten gehabt...
Also ich bleibe dann bei System Tuner (Bleibt für mich die beste App die es gibt *.*)

Hi ExKcir,
du gehst einfach zu oft deinen eigenen Weg und nimmst wenig von der Community an.
Du rennst so oft vor die Wand, denk mal drüber nach :) Soll jetzt nicht böse sein sondern einfach nur ein Hinweis.
Ganz am Rande ist das LogCat einfach das wichtigste wenn es um das Aufspüren von Fehlern geht aber du willst ja nicht.

Gruß,
Markus

20.08.2012 15:42:50 via Website

Markus B.
ExKcir
André
Ich würde dir mal empfehlen, solche elementaren Anfängersachen im Emulator auszuprobieren. Dann siehst du das Logcat direkt im Eclipse und kannst direkt an die Stelle springen (und noch viel wichtiger: debuggen).

Ansonsten gibt es eine ganze Menge Apps die das Logcat auslesen, filtern, durchsuchen etc. können. Ich benutze aLogcat.
Naja, mit dem Emulator habe ich in letzter zeit so meine schwirigkeiten gehabt...
Also ich bleibe dann bei System Tuner (Bleibt für mich die beste App die es gibt *.*)

Hi ExKcir,
du gehst einfach zu oft deinen eigenen Weg und nimmst wenig von der Community an.
Du rennst so oft vor die Wand, denk mal drüber nach :) Soll jetzt nicht böse sein sondern einfach nur ein Hinweis.
Ganz am Rande ist das LogCat einfach das wichtigste wenn es um das Aufspüren von Fehlern geht aber du willst ja nicht.

Gruß,
Markus
Ja, das bezweifle ich nicht, aber wenn es mir weiterhilft nehme ich jeden rat an.
Aber was soll ich tun wenn ich den Emulator nicht benutzen kann weil er nicht startet?
Und System Tuner hat eine Funktion wo man LogCat nachrichten lesen kann, also warum eine andere App installieren?