# AlertDialog Eigenschaften existiert nicht mehr.



## wer112 (21. Dez 2022)

Ich habe mein Dialog aus mein App Store rauskopiert und habe es an der Richtigen stelle wieder hinzugefügt. 
Da wurde von den AlertDialog Eigenschaften rot makiert. musste leider meine comSDK hochstellen. 
Dann habe ich den kompletten Code 1:1 kopiert und eingefügt, um Fehler zu vermeiden.

das ist ja mein Dialog, der im App Store perfekt funktioniert:


```
AlertDialog.Builder builder = new AlertDialog.Builder(Registrieren.this, R.style.AlertDialogTheme);
                View view = LayoutInflater.from(Registrieren.this).inflate(R.layout.layout_error_dialog, (ConstraintLayout)findViewById(R.id.layoutDialogContainer));
                builder.setView(view);
                ((TextView)view.findViewById(R.id.textTitle)).setText("VolleyError");
                ((TextView)view.findViewById(R.id.textView_error)).setText("ERROR: " + error);
                ((Button)view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                ((ImageView)view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                final AlertDialog alertDialog = builder.create();

                view.findViewById(R.id.buttonAction).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        alertDialog.dismiss();

                    }
                });

                if (alertDialog.getWindow() != null){
                    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
                }



                alertDialog.show();
```

leider wird in einem anderen Projekt diese Elemente rot und weiß nicht wiso:

.show();
.getWindow();


Werden diese zwei Elemente nicht mehr supported? Bitte nixs am Aussehen ändern, nur wiso das jetzt nicht mehr klappt.
Liegt es an der comSDK Version?

Danke für erue Hilfe


----------



## yfons123 (21. Dez 2022)

Alert (JavaFX 8)
		


alert hat kein getWindow, außerdem soll deine IDE dir das sowieso sagen was falsch ist..





						Alert (JavaFX 18)
					

declaration: module: javafx.controls, package: javafx.scene.control, class: Alert



					openjfx.io
				



javafx 18 hat auch kein get window


----------



## Jw456 (21. Dez 2022)

Die beiden  Methoden gibt es auch noch in API 33

AlertDialog erbt von Dialog dort git es sie. 
@yfons123 es geht hier um Android nicht Swing oder JavaFX



Was genau wird rot?

"Registrieren.this" ist nicht der richtige Context in einen Faragment.
In der Activity ist das so möglich in einem Fragment nicht.


----------



## Jw456 (21. Dez 2022)

R.id.textTitle ist sicherlich in dem Layout vom Fragment und nicht in dem von dem Dialog.


Wie ich dir schon im anderen Thread sagte benutze für das laden einen anderen Bezeichner nicht view.

Das ist die Übergabe Variable von
onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
sollte nicht verändert werden.
Also eine neue erstellen mit anderen Namen.

So in etwa sollte die Methode aus dem anderen Thread aussehen.


```
private void ----(View view){

        String url = "----";

        RequestQueue queue = Volley.newRequestQueue(context);

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                Log.e("Response Entwickler: ", response);
                Toast.makeText(context, "Response: " + response, Toast.LENGTH_SHORT).show();

                if (response.equals("Session Fehler.")){
                    AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext(), R.style.AlertDialogTheme);
                    View viewAd = LayoutInflater.from(getActivity()).inflate(R.layout.layout_error_dialog, (ConstraintLayout)getActivity().findViewById(R.id.layoutDialogContainer));
                    builder.setView(viewAd);
                    ((TextView) view.findViewById(R.id.textTitle)).setText("Fehler");
                    ((TextView) view.findViewById(R.id.textView_error)).setText(response);
                    ((Button) view.findViewById(R.id.buttonAction)).setText(getString(R.string.okay));
                    ((ImageView) view.findViewById(R.id.image_error)).setImageResource(R.drawable.ic_error);

                    final AlertDialog alertDialog = builder.create();
```


----------



## wer112 (21. Dez 2022)

Jw456 hat gesagt.:


> Die beiden  Methoden gibt es auch noch in API 33
> 
> AlertDialog erbt von Dialog dort git es sie.
> @yfons123 es geht hier um Android nicht Swing oder JavaFX
> ...


Wie beschrieben, wird alertdialog.show(); rot, sowie alertdialog.getWindow(); rot. Habe im Handbuch nach geschaut, ob das veraltet ist, aber wie es aussieht ist es noch gültig. Irgendwie werden auch das Param Zeug rot, aber da schaue ich mal, da vorhin es noch net war, wvtl. jedem dem Essen auf der Tastatur xD


Jw456 hat gesagt.:


> "Registrieren.this" ist nicht der richtige Context in einen Faragment.


Das ist noch im normale Classe. Also Erst kommt der Ladebildschirm, dann Login bzw. Registrierung bzw. Passwort zurücksetzen, die sind noch normal. Wenn man eigelogt ist, kommt man zur Steuerung, was auch noch ne normale Klasse ist...


Jw456 hat gesagt.:


> In der Activity ist das so möglich in einem Fragment nicht.


Im App Store ging der Code überall, auch in den Fragmente.
musste leider die compileSdkVersion 32 setzen. Im App Store war traget und comSDK beide auf 30, aber dies geht in dem schnell Projekt net. Beswegen stand in SOF das man es hochsetzen muss.


----------



## wer112 (21. Dez 2022)

Jw456 hat gesagt.:


> Wie ich dir schon im anderen Thread sagte benutze für das laden einen anderen Bezeichner nicht view.


Hat ja nicht funktioniert, da das view für den LayoutInflater sonst rot erscheint, und ich brauche ja den ganzen Teil vom Inflater, damit beim Coustom Dialog exsistieren kann. Und auch die Elemente drauf zugreifen kann.
Im Handbuch wurde das Anstatt show irgendwie mit return ausgegeben, aber das Problem habe ich ja in alle Apps noch nie gehabt, das was mit dem Dialog net stimmte.

Ich werde das mit dem Appstore testen und in diesem Code testen...
Also diesen Code von dir....
Mir geht es ja darum, das Simple .show() rot erscheint ect. und auch nicht mehr im Auswahl Feld steht...


----------



## Jw456 (22. Dez 2022)

wer112 hat gesagt.:


> Irgendwie werden auch das Param Zeug rot,


Was meist du damit?


----------



## wer112 (22. Dez 2022)

Jw456 hat gesagt.:


> Was meist du damit?


Das konnte ich bereits bereinigen, das Lag das Essen hat auf der Tastatur misst angestellt.

Der AlertDialog funktioniert im Login, da wird .show() und getWindow() nicht rot makiert, nur bei der Registrierung, Obwohl der Code vom App Store ja geht und komplett kopiert wurden ist.


----------



## Jw456 (22. Dez 2022)

"Registrieren" ist doch eine Klasse und was ist das eine Activity oder ein Fragment?

In einer Activity kannst du dir den Context  mit "Registrieren.this" holen wenn du auch in der Activity bist.
Im Fragment wird da deine IDE einen Fehler anzeigen.
Und wenn die Variable "builder" schon einen Fehler hat gibt dir die IDE auch Fehler wenn du Methoden aus ihr aufrufen willst.


----------



## wer112 (22. Dez 2022)

Jw456 hat gesagt.:


> "Registrieren" ist doch eine Klasse und was ist das eine Activity oder ein Fragment?


Es ist eine Activity. Bei der Login Activity klappt das mit .show() usw. Und im App Store und in den anderen Projekten funktioniert auch in den Fragmente.


Jw456 hat gesagt.:


> In einer Activity kannst du dir den Context  mit "Registrieren.this" holen wenn du auch in der Activity bist.
> Im Fragment wird da deine IDE einen Fehler anzeigen.


habe da immer getActivity() genommen und das ging..


----------



## Jw456 (22. Dez 2022)

Dann zeige doch mal Bilder wo es rot ist und nicht geht.


----------



## wer112 (23. Dez 2022)

Jw456 hat gesagt.:


> Dann zeige doch mal Bilder wo es rot ist und nicht geht.


Bei der Regsistrierungsactivity:



Bei dem Login Activity, ist das da nicht rot, auch nicht in mein App Store auf der Resgistrierseite, dafunktioniert es problemlos und jede weitere App. Und die Registrierung ist auch komplett kopiert wurden und dann angepasst....


----------



## Jw456 (23. Dez 2022)

Mit dem new OnKlicklistener stimmt ja auch was nicht. 
Mache doch erstmal ein Clear Projekt und  Rebuild Projekt. Lösche auch mal den Gradle  Cache.


----------



## Jw456 (23. Dez 2022)

Hast du auch den richtigen import eingebunden?


----------



## wer112 (23. Dez 2022)

Jw456 hat gesagt.:


> Mit dem new OnKlicklistener stimmt ja auch was nicht.
> Mache doch erstmal ein Clear Projekt und  Rebuild Projekt. Lösche auch mal den Gradle  Cache.


Hatte ich ja gemacht, hat ja nixs gebracht.


Jw456 hat gesagt.:


> Hast du auch den richtigen import eingebunden?


Ja da war ein Fehler, hat auch mit Fehler compililert. Beim App Store hat den Fehler nicht angezeigt, evt. jedem den niedrigen comSDK.
Hatte im App Store androidx.app...Dialog.

Habe im jetzigen klein Projekt, mal geschaut, warum das bei Login nicht rot makiert wurden war.
Dort stand nähmlich android.app...Dialog

es lag am x, KEin Plan was androidx ist....

Jetzt funktioniert es wieder 👍👍👍


----------

