AlertDialog in verschiedenen Sprachen?

  • Antworten:4
  • Bentwortet
Ben Becker
  • Forum-Beiträge: 209

27.06.2011, 16:09:07 via Website

Ich habe einen Alert Dialog mit einer List darauf. Den Titel kann ich mir noch aus der R.string holen, aber wie bekomme ich die Elemente in der Liste aus der R.String? Meine App soll nämlich Englisch und Deutsch sein. Zur Zeit habe ich eine eigne Klasse geschrieben, und diese dann zweimal, einmal für Englisch und einmal für deutsch. Dann muss ich beim Starten prüfen welche Sprache eingestellt ist, dass finde ich aber sehr unsauber. Sicher gibt es dafür etwas besseres nur finde ich es nicht.

1final CharSequence[] items = LigenNamenID_de.ITEMS;
2 AlertDialog.Builder builder = new AlertDialog.Builder(this);
3 builder.setTitle(getText(R.string.get_liga));
4 builder.setItems(items, new DialogInterface.OnClickListener() {
5 public void onClick(DialogInterface dialog, int item) {
6 Toast.makeText(getApplicationContext(), items[item],
7 Toast.LENGTH_SHORT).show();
8 System.out.println("BEN"+LigenNamenID_de.getID((String)items[item]));
9 SQLiteDatabase myDB = null;
10 myDB = openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
11 myDB.execSQL("insert into " + MY_DB_TABLE
12 + "(name, liga_id) VALUES ('" + items[item] + "',15);");
13 myDB.close();
14
15 Intent myIntent = new Intent(TabStatistik.this, TabStart.class);
16 myIntent.putExtra("liga", "de_1_bundesliga");
17 myIntent.putExtra("liga_id", items[item]);
18 startActivityForResult(myIntent, 0);
19 dialog.dismiss();
20 finish();
21 }
22 });
23 AlertDialog alert = builder.create();

Antworten
Ben Becker
  • Forum-Beiträge: 209

27.06.2011, 18:10:49 via Website

mhm hast du nen Link mit einer Anleitug zum Thema Ressourcen Array?
Das problem dabei ist, ich muss es dann doch wieder an zwei stellen pflegen, da ich jedem Namen noch eine ID zuweise.
Bis jetzt sieht das so aus, und das in einer eigenen Klasse. Da diese aber nicht von Activity ableitet kann ich nicht auf getRessources().getText zugreifen. Das wäre mir am liebsten, weil da kommt ja nen String raus. Kann ich denn nicht aus jeder Klasse auf die Ressourcen zugreifen?

1package de.sportwettenblogger.de;
2
3import java.util.Hashtable;
4
5public class LigenNamenID_de {
6 public static final CharSequence[] ITEMS = {
7 "Deutschland 1. Bundesliga",
8 "Deutschland 2. Bundesliga",
9 "Deutschland 3. Liga"};
10
11 private static Hashtable<String, String> nameID=null;
12
13 private static void setID(){
14 nameID = new Hashtable<String, String>();
15
16 nameID.put("Deutschland 1. Bundesliga", "1");
17 nameID.put("Deutschland 2. Bundesliga", "2");
18 nameID.put("Deutschland 3. Liga", "3");
19 }
20
21
22 public static String getID(String item){
23 if(nameID==null){
24 setID();
25 }
26
27 return nameID.get(item);
28 }
29}

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

27.06.2011, 19:12:47 via App

Hey,
wenn du deiner Klasse den Context übergibst, kannst du mit mContext.getRessources() usw arbeiten.
Lg Ansgar

Ben Becker

Antworten
Ben Becker
  • Forum-Beiträge: 209

27.06.2011, 20:51:24 via Website

Danke! :) So habe ich es jetzt gemacht.

Antworten