Spinner mit android:spinnerMode="dialog"

  • Antworten:5
Joachim Seifert
  • Forum-Beiträge: 16

03.01.2014, 21:05:15 via Website

Hallo ich hab da ein Problem:
Ich möchte bei aufgeklappten Spinner die Blaue Line unter dem "Promt" in eine andere Farbe ändern.

Bei Dialogen ist das Kein Problem mach ich so:

1dialog.findViewById(getResources().getIdentifier("titleDivider", "id", "android")).setBackgroundColor(this.getResources().getColor(R.color.drot));

doch beim Spinner kenn ich den Dialog der beim aufklappen erzeugt wird nicht und folgender Code gibt NULL zurück:

1dialog.findViewById(getResources().getIdentifier("titleDivider", "id", "android"));

Woher bekomme ich als den Dialog oder gibt es da noch eine andere Lösung.
Danke im voraus.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.01.2014, 22:21:28 via Website

Wo gibst du in deinem Zweiten Code die Farbe an?
Was sind deine Recourcen zb. "drot"?

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

Antworten
Joachim Seifert
  • Forum-Beiträge: 16

03.01.2014, 22:35:32 via Website

drot ist so definiert:
1<color name="drot">#65121B</color>

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.01.2014, 22:40:27 via App

Und wieso suchst du den dialog über findviewbyid ?
Poste mal bitte den Code.

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

Antworten
Joachim Seifert
  • Forum-Beiträge: 16

03.01.2014, 23:03:08 via Website

Soweit ich weiß, zeigt der aufgeklappte Spinner eine Dialog von "Android" an und

1findViewById(getResources().getIdentifier("titleDivider", "id", "android"));

bringt die "ID" der blaue Linie unter den "Prompt" Titel.

Aber wie komme ich nun daran. Unter Windows gibt es für jedes Fenster einen Handle zur not über Subclassing.

Mit Java tue ich mich da noch etwas schwer. Mit der normalen codierung komme ich schon ganz gut klar.

Aber mit dem Styling hapert es.............

Antworten
Joachim Seifert
  • Forum-Beiträge: 16

04.01.2014, 12:16:10 via Website

Noch ein Nachtrag:
Das läuft so prima:
1final Dialog dialog = new Dialog(context);
2dialog.setContentView(R.layout.custom);
3 final Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
4 final EditText ed = (EditText)dialog.findViewById(R.id.editText1);
5 Button abbr = (Button) dialog.findViewById(R.id.button1);
6
7 dialog.setOnShowListener(new OnShowListener() {
8
9 abbr.setOnClickListener(new OnClickListener(){
10 @Override
11 public void onClick(View v) {
12 dialog.dismiss();
13 }
14
15 });
16 dialogButton.setOnClickListener(new OnClickListener() {
17 @Override
18 public void onClick(View v) {
19 dialog.dismiss();
20 }
21
22 });
23
24 dialog.show();
25
26 ((TextView)dialog.findViewById(android.R.id.title)).setTextSize(TypedValue.COMPLEX_UNIT_SP, 19);
27
28 ((TextView)dialog.findViewById(android.R.id.title)).setTextColor(this.getResources().getColor(R.color.drot));
29
30 dialog.findViewById(getResources().getIdentifier("titleDivider", "id", "android")).setBackgroundColor(this.getResources().getColor(R.color.drot));
31
32 }

Hier habe ich ja auch die Variable dialog.
Wenn der Spinner aufklappt wird auch ein "Dialog" oder "TextView" angezeigt aber wie komme ich an die Variablen??

Antworten