Relativelayout in Fragment

wer112

Top Contributor
Ich habe meine Beiträge angeschaut. Ich habe nixs gefunden, glaube aber, dass jemand meinte, dass im Fragment ein Gewicht genommen muss.
Ich habe unbekannte Probleme. Nachdem ich die gelöst habe, ohne zu wissen wie, möchte ich die Prüfung des Entwicklerkontos vornehmen.

1. Ich muss RelativeLayout machen, aber alle Elemente klatschen in der oberen linke rechte Seite zusammen. Habe jetzt vorübergehend LinearLayout gemacht.
Ich möchte, dass der App Store für alle Handys passt, das Layout. Möchte nämlich den Progressbar(Spinner) genau in der Mitte der Activity machen und alles außen rumbauen. (Zeigt an im Vorschau, aber funktioniert nicht).

Was ich nicht verstehe, dass das Relative Layout bei den Einstellung geht, aber nicht bei der Prüfung.

2. Ich halte vom Android Script(PHP) ein Response. Kommt richtig an laut Log, dass ich kein Entwickler sei. Aber die Bedingung wird nicht gemacht. Irgendwie habe ich mit der Activity und immer Probleme. Baue normaler weiße es so:

if(response.equlas("ABC")){

}else if(...

obwohl ich den Response richtig bekomme, wird die Anweisung nicht richtig ausgeführt.

Auf der Seite funktioniert, nicht das, was über all funktioniert.

Hat jemand ein Tipp, bzw. Relativelayout und das mit den IF - Anweisung?

Ich danke schon mal, für Tipps, da ich grade nixs mehr verstehe...
 

wer112

Top Contributor
1. ) Dann zeige mal dein Relativelayout xml Layout. Ich denke du hast ein Relativ in einen Costrain.

Java:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ladeseiteconsole">


    <TextView
        android:id="@+id/textView_error_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="ERROR TEXT"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#ff0000"
        android:visibility="invisible"/>

    <TextView
        android:id="@+id/textView_ladeinfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="150dp"
        android:text="TextView"
        android:textColor="#000000"
        android:textSize="18sp"
        android:textStyle="bold"
        android:visibility="invisible"/>



    <ProgressBar
        android:id="@+id/progressBar_entwickler_pruefen"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/textView_bittewarten_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/progressBar_entwickler_pruefen"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="60dp"
        android:text="Bitte warten ..."
        android:textColor="#000000"
        android:textStyle="bold"
        />



</RelativeLayout>

Wird in der Ansicht richtig dargestellt, nur nicht auf dem Handy. Habe mal ein Textview aus einem anderen Fragment RelativLayout, wo es in der Mitte war, darein kopiert und ist dann auch nach links abgerutscht.

So würde es aussehen bei dem Code(Nicht wundern, die Farben habe ich in den App Einstellung eingestellt. Jeder kann das machen, wie er will ;) ):

Screenshot_20230312_112425_Klug_Store[1].jpg

Das war das Problem mit den anderen Sachen, was du wolltest, was ich normalerweise imer tue und es klappt bisher immer. Aber nie auf der einen Klasse. Obwohl ich gefühlt schon 100 Android PHP Scripte mit Volley abgerufen habe bzw. was übergeben, also kann ich ja keine Fehler machen, habe es sogar mehrmals geprüft..


Deine Frage ist nicht sinnvoll zu beantworten. Es fehlt jeglicher Context.

Das ist mein Volley Response Code:

PHP:
 public void onResponse(String response) {
                Log.e("LadeResponse: ", response);

                if(response.equals("Session Fehler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Fehler");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Fehler Code: E100");
                    //hinweißtext.setVisibility(View.VISIBLE);


                }else if (response.equals("Kein Entwickler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    Log.e("IF Schleife", "Kein EWi");
                    //errorText.setText("ABC");
                   // errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Du musst dich erstmal als Entwickler registrieren,\nbevor du auf die Entwickler Konsole drauf zugreifen kannst.");
                    //hinweißtext.setVisibility(View.VISIBLE);

                }else if(response.equals("Bereits Entwickler.")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);


                    startActivity(new Intent(getActivity(), fragment_steuerung_app_konsole.class));


                }else if(response.equals("Bann for ever.")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("BANNED FOR EVER");
                    //errorText.setVisibility(View.VISIBLE);

                }else if(response.equals("Entwickler Fehler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Fehler");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Fehler Code: E101");
                    //hinweißtext.setVisibility(View.VISIBLE);

                }else if(response.equals("Gesperrt")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Gesperrt");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Die Sperrdauer wird ermittelt.");
                    //hinweißtext.setVisibility(View.VISIBLE);
                }

            }
        }, new Response.ErrorListener() {


Als Response bekomme ich: E/LadeResponse:: Kein Entwickler.

Aber das mit dem Gesperrt, wollte ich nixs reinmachen, aber dann wird immer das aufgerufen.


Das ist ein Code, der Bei mir funktioniert:

PHP:
 if(response.equals("Benutzer existiert!")){


            AlertCustomDialog


        }else if (response.equals("Benutzer gibt es nicht.")){


                       AlertCustomDialog


        }else {


            AlertCustomDialog

          


        }


    }

}, new Response.ErrorListener() {


Ich stelle kein Unterschied fest, warum das da klappt, aber auf den jetzigen Code nicht(Nur wenn ich else mache, dann wird immer das aufgerufen, obwohl ich es mit equals ja aufrufe und der Response ja auch richtig reinkommt.



Das ist der Relative Code von einem anderen Fragment:

XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".app_einstellungen">

    <TextView
        android:id="@+id/app_einstellungen_ueberschrift"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="App Einstellungen"
        android:textColor="#e0e0e0"
        android:textStyle="bold"
        android:textSize="25sp"/>


Und da funktioniert das:


Screenshot_20230312_113426_Klug_Store[1].jpg


Das ist auch ein Fragment, und ein Relativ Layout, aber da ist der Text in der Mitte. Wenn ich den TextView genauso und obern fast alles in die Prüfung Lege, dann ist es alles in der Oben Linkende Ecke. Ich weiß nicht, wiso das Fragment macht, was es will auch mit xml, was kein Sinn macht...

Ich danke eich schon mal ;)
 

Jw456

Top Contributor
Es sollten nicht zwei Views am gleichen Platz sein. Du hast ein mal den text in der Mitte und auch die ProgressBar.
Versuche einen Platz mit Gone freizugeben.
 

wer112

Top Contributor
Wie gross ist das Fragment in dem Main Laout . Also der Container in dem das Fragment läuft?
Ich weiß nicht was du meinst, aber in den anderen Fragmente ist das komplett groß, da gibt es keine Einschränkungen, deswegen wundere ich mich ja.

In der Steuerung:

XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:id="@+id/drawer"
    tools:openDrawer="start"
    tools:context=".fragment_steuerung">


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#e0e0e0"/>




        <RelativeLayout
        android:id="@+id/homelayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        />

    </RelativeLayout>




    <com.google.android.material.navigation.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/navmenu"
        app:menu="@menu/iconmenu"
        app:headerLayout="@layout/navheader"
        android:layout_gravity="start"/>







</androidx.drawerlayout.widget.DrawerLayout>
 

wer112

Top Contributor
Es sollten nicht zwei Views am gleichen Platz sein. Du hast ein mal den text in der Mitte und auch die ProgressBar.
Versuche einen Platz mit Gone freizugeben.
Ich kann mal das Wegmachen den TextView, hat aber bisher so auch funktioniert. Das ich dann Progressbar und Text wegmache, dafür den Text in der Mitte Sichtbar zu machen.

Was meinst du mit Platz mit Gone freizugeben?
 

wer112

Top Contributor
Es sollten nicht zwei Views am gleichen Platz sein. Du hast ein mal den text in der Mitte und auch die ProgressBar.
Versuche einen Platz mit Gone freizugeben.
Habe es rausgemacht, hat trotzdem nicht funktioniert. Ich habe ja schon über 4 Monate mit der Ladeseite zu tun, da die genau das nicht macht, was die anderen tuen, obwohl alles gleich ist, bzw. keine Fehler oder so ist. Da verzweifelt man ja.
 

wer112

Top Contributor
Ist es denn in der Mitte, wenn du nur einen sichtbaten Text in der Mitte hast? sonnst nichts.
Nein, klebt alles in der Ecke oben. Habe es extra mal den Store deinstalliert. Hat aber nixs gebracht. Habe das auf das Progressbar mehr mals in anderen Apps ect. gelegt, war nie das Problem.

XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ladeseiteconsole">


    <TextView
        android:id="@+id/textView_error_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="ERROR TEXT"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#ff0000"
        android:visibility="invisible"/>





    <ProgressBar
        android:id="@+id/progressBar_entwickler_pruefen"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/textView_bittewarten_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/progressBar_entwickler_pruefen"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="60dp"
        android:text="Bitte warten ..."
        android:textColor="#000000"
        android:textStyle="bold"
        />



</RelativeLayout>

Ist genau wie das 1. Bild, kein Unterschied.
 

Jw456

Top Contributor
Das Layout an sich ist OK.



Mache erstmal ein Clean Projekt und ein Rebuild.

Wird es in dem selben Container eingeblendet wie die anderen Fragmente?
Was ist .ladeseiteconsole normalerweise ist das die Activity (MainActivity).

Hast du hier ein Fragment im Fragment?
 

wer112

Top Contributor
Das Layout an sich ist OK.



Mache erstmal ein Clean Projekt und ein Rebuild.
Hat nixs geändert. Lösche ja jedes mal bei Programmstart .idea Ordner.
Wird es in dem selben Container eingeblendet wie die anderen Fragmente?

Ja, Wird genauso über die Steuerung aufgerufen, wie bei den anderen. Habe es genau so gemacht, wie bei den anderen.
Was ist .ladeseiteconsole normalerweise ist das die Activity (MainActivity)
ISt ein Fragment. Muss ja mit einer Klasse verbunden sein(Bei den anderen ist das mitdrinn) Oder soll ich es mal rausnehmen?
Hast du hier ein Fragment im Fragment?
Ist nur ein Fragment
 

wer112

Top Contributor
Was meist du damit?
zeige das.

Zeige wie du das Fragment aufrufst und wie du das Layout einbindest .
Mit was arbeitest du? mit dem NavControler oder noch alt mit den Trasaction.
Da deins jeden Session auch ohne Grund net klappte, musste ich wie mit den anderen machen.

Java:
  ladeseiteconsole = (ladeseiteconsole)Fragment.instantiate(this, ladeseiteconsole.class.getName(), null);

so wie bei den anderen, wo es klappt.

Java:
                    case R.id.entwickler_icon:


                        toolbar.setTitle("Entwickler Login");

                        fragmentManager = getFragmentManager();
                        fragmentTransaction = fragmentManager.beginTransaction();
                        fragmentTransaction.replace(R.id.homelayout, ladeseiteconsole);
                        fragmentTransaction.commit();


                        drawerLayout.closeDrawer(GravityCompat.START);



                        break;

sowie bei den anderen


Java:
package -------;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.HashMap;
import java.util.Map;

public class ladeseiteconsole extends Fragment {

    Context context;

    TextView errorText, hinweißtext, wartenText;

    ProgressBar pb;



    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseiteconsole, null);


       //errorText = (TextView)fragmentlayout_ladeseite.findViewById(R.id.textView_error_ladeconsole);
       //hinweißtext = (TextView)fragmentlayout_ladeseite.findViewById(R.id.textView_ladeinfo);
       //wartenText = (TextView)fragmentlayout_ladeseite.findViewById(R.id.textView_bittewarten_ladeconsole);

       pb = (ProgressBar)fragmentlayout_ladeseite.findViewById(R.id.progressBar_entwickler_pruefen);

        Prüefen();

        return fragmentlayout_ladeseite;
    }



    private void Prüefen(){



        String url = "--------";


        RequestQueue queue = Volley.newRequestQueue(getActivity());

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

                if(response.equals("Session Fehler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Fehler");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Fehler Code: E100");
                    //hinweißtext.setVisibility(View.VISIBLE);


                }else if (response.equals("Kein Entwickler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    Log.e("IF Schleife", "Kein EWi");
                    //errorText.setText("ABC");
                   // errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Du musst dich erstmal als Entwickler registrieren,\nbevor du auf die Entwickler Konsole drauf zugreifen kannst.");
                    //hinweißtext.setVisibility(View.VISIBLE);

                }else if(response.equals("Bereits Entwickler.")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);


                    startActivity(new Intent(getActivity(), fragment_steuerung_app_konsole.class));


                }else if(response.equals("Bann for ever.")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("BANNED FOR EVER");
                    //errorText.setVisibility(View.VISIBLE);

                }else if(response.equals("Entwickler Fehler.")){
                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Fehler");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Fehler Code: E101");
                    //hinweißtext.setVisibility(View.VISIBLE);

                }else if(response.equals("Gesperrt")){

                    pb.setVisibility(View.INVISIBLE);
                    //wartenText.setVisibility(View.INVISIBLE);

                    //errorText.setText("Gesperrt");
                    //errorText.setVisibility(View.VISIBLE);

                    //hinweißtext.setText("Die Sperrdauer wird ermittelt.");
                    //hinweißtext.setVisibility(View.VISIBLE);
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("ErrorLorVolley", "Ladeconsoleseite Fehlgeschlagen");
                pb.setVisibility(View.INVISIBLE);
                //wartenText.setVisibility(View.INVISIBLE);

                //errorText.setText(error.toString());
                //errorText.setVisibility(View.VISIBLE);
            }
        });

        queue.add(stringRequest);

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }
}

sowie bei den anderen.


bei den anderen Fragmente geht das alles... Musste leider den code vom guthaben nehmen, da es ja irgendwie nicht ging mit den sessions. Dachte an url...
 

wer112

Top Contributor
Ob das was bringt keine Ahnung du willst das deine Bildprozess neu gestartet wird und auch deine xml Layout Dateien neu übersetzt werden.
Also das der Build Ordner gelöscht und neu erstellt wird.
ich muss das machen, sonst funktioniert das Studio nicht. Kann auch seit über 1,5 Jahren nicht auf die Assets zugreifen...
 

wer112

Top Contributor
Dann würde ich vielleicht mal das Studio neu aufsetzen. Eventuell das gesamte Projekt..

und wie gesagt lösche mal den Build Ordner.
Den build Ordner habe ich gelöscht, aber hat auch nicht funktioniert. Ich update mal das Studio. Zunot Deinstalliere ich es erneut. Das ganze neu Aufsetzen wird bestimmt schwierig...
 

wer112

Top Contributor
Du hast AndroidX dann solltest du auch "import androidx.fragment.app.Fragment;" benuzen
und nicht" import android.app.Fragment;"
gehe deine Importe noch mal durch.
Habe ich letztens festgestellt. Bei den anderen war kein x , deswegen haben ich den kompletten Import mit Rüber kopiert.

Wieso kommst du auf andriodX?

Ich bekomme dann den Fehlermeldung, wenn ich mit x mache:

error: incompatible types: Fragment cannot be converted to ladeseiteconsole
ladeseiteconsole = (ladeseiteconsole)Fragment.instantiate(this, ladeseiteconsole.class.getName(), null);
^

Bei allen anderen Fragmente ist ohne x, daran kann es also nicht liegen, das ich nicht mit IF arbeiten kann + RelativeLayout...
 

Jw456

Top Contributor
Wieso kommst du auf andriodX?
du hast zb das "import androidx.appcompat.app.AppCompatActivity;"

du wirst doch wohl selber wissen was du hast. Auf welchen SDK (API) du arbeitest.

Wenn du höher als API 28 bist dann wird eigentlich auch in Activity getSupportFragmentManager() benutzt.
Und androidX .

zeige mal dein Grade file.
 

wer112

Top Contributor
du hast zb das "import androidx.appcompat.app.AppCompatActivity;"

du wirst doch wohl selber wissen was du hast. Auf welchen SDK (API) du arbeitest.

Wenn du höher als API 28 bist dann wird eigentlich auch in Activity getSupportFragmentManager() benutzt.
Und androidX .

zeige mal dein Grade file.
Java:
plugins {
    id 'com.android.application'
}

apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "----"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "19.08.2022.1.0.0.6.rel2/4"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}



dependencies {

    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    implementation platform('com.google.firebase:firebase-bom:28.3.0')

    implementation 'net.margaritov.preference.colorpicker.ColorPickerPreference:ColorPickerPreference:1.0.0'
    implementation 'com.google.code.gson:gson:2.8.7'

    implementation 'com.loopj.android:android-async-http:1.4.11'

    /* https://github.com/android-async-http/android-async-http  -> implementation 'com.loopj.android:android-async-http:1.4.11'

        Cookies speichern und abrufen mit dem Github Implementation
        https://gist.github.com/manishk3008/2a2373c6c155a5df6326

     */

    implementation 'com.android.volley:volley:1.2.1'
    implementation 'androidx.biometric:biometric:1.1.0'

    //implementation 'org.apache.httpcomponents.client5:httpclient5:5.1.3'  Fehler: More than one file was found with OS independent path 'META-INF/DEPENDENCIES'.
    implementation 'com.squareup.okhttp3:mockwebserver:4.9.3'
}


Bei ConstrainLayout gibt es nixs anderes ohne X.

Das seltsame ist ja, das es auf den Anderen Fragmente immer klappt. Am Handy(Android 12) kann es net liegen, da bei den anderen Seiten immer alles klappte.


Ich habe nur mit der Ladeseite unbekannte Probleme, die nur dort herschen.
 

Jw456

Top Contributor
Wie ich dir schon mal sagte ist die Methode „onCreateView“
ab API28 nur noch dazu da das Layout zuladen.

Der Programmcode gehört in die onViewCreated dort hast du auch die View.


onActivityCreated ist auch deprecated.


Java:
@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseiteconsole, null);
        return fragmentlayout_ladeseite;
    }

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        //errorText = (TextView)view.findViewById(R.id.textView_error_ladeconsole);
        //hinweißtext = (TextView)view.findViewById(R.id.textView_ladeinfo);
        //wartenText = (TextView)view.findViewById(R.id.textView_bittewarten_ladeconsole);

        pb = (ProgressBar)view.findViewById(R.id.progressBar_entwickler_pruefen);

        Prüefen();
       
    }

Schaue was alles unter androidx deprecated ist.
 
Zuletzt bearbeitet:

wer112

Top Contributor
Wie ich dir schon mal sagte ist die Methode „onCreateView“
ab API28 nur noch dazu da das Layout zuladen.
Und wenn jemand ein niedrige Android Version hat, z.B. Android 8 oder Android 5, ist ja niedriger.
Der Programmcode gehört in die onViewCreated dort hast du auch die View.


onActivityCreated ist auch deprecated.


Java:
@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseiteconsole, null);
        return fragmentlayout_ladeseite;
    }

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        //errorText = (TextView)view.findViewById(R.id.textView_error_ladeconsole);
        //hinweißtext = (TextView)view.findViewById(R.id.textView_ladeinfo);
        //wartenText = (TextView)view.findViewById(R.id.textView_bittewarten_ladeconsole);

        pb = (ProgressBar)view.findViewById(R.id.progressBar_entwickler_pruefen);

        Prüefen();
       
    }
Hatte ich dort am Anfang ja auch, wie vorhin gesagt, hat aber nicht funktioniert, deswegen musste ich den gesamten Code von dem anderen Fragment verwenden. Kann nochmal testen,
 

wer112

Top Contributor
Wie ich dir schon mal sagte ist die Methode „onCreateView“
ab API28 nur noch dazu da das Layout zuladen.

Der Programmcode gehört in die onViewCreated dort hast du auch die View.


onActivityCreated ist auch deprecated.


Java:
@Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseiteconsole, null);
        return fragmentlayout_ladeseite;
    }

 @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        //errorText = (TextView)view.findViewById(R.id.textView_error_ladeconsole);
        //hinweißtext = (TextView)view.findViewById(R.id.textView_ladeinfo);
        //wartenText = (TextView)view.findViewById(R.id.textView_bittewarten_ladeconsole);

        pb = (ProgressBar)view.findViewById(R.id.progressBar_entwickler_pruefen);

        Prüefen();
      
    }

Schaue was alles unter androidx deprecated ist.
Die Elemente sind immer noch in der oberen linke Ecke gequetscht.
 

wer112

Top Contributor
import auch auf androidx
Dann wird es grau, da es ja import android.app.Fragment; hinterlegt wird.

wenn ich das androidx nehme, dann wir in der Steuerung das rot: ladeseiteconsole = (ladeseiteconsole)Fragment.instantiate(this, ladeseiteconsole.class.getName(), null);

deswegen nehme ich es ohne x.

Natürlich muss der nächste Entwickler, den App Store bereichtigen und reinigen, sowie verbessern. Aktuell lege ich den Fokus in der Beta, das erstmal so funktioniert, das der nächste genau weiß, wie es aussieht und funktionieren soll im Schnitt....

Sonst müsste ich es reinigen. Aber die Steuerung nehme ich bis jetzt immer in den Projekte, da die zuverlässig Ansicht funktioniert....
schaue was du bei deinen andern Fragmenten hast.
Beim Guthaben Senden das:


import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.HashMap;
import java.util.Map;


Bei den App Einstellung(Farben):


import android.app.Fragment;
import android.app.FragmentManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.constraintlayout.widget.ConstraintLayout;


import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

import net.margaritov.preference.colorpicker.ColorPickerDialog;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;



Bei den anderen Fragmente ist es auch ohne X
 

Jw456

Top Contributor
wenn ich das androidx nehme, dann wir in der Steuerung das rot: ladeseiteconsole = (ladeseiteconsole)Fragment.instantiate(this, ladeseiteconsole.class.getName(), null);
ist auch depreacated
deshalb ist es besser nicht mehr mit der Transaction zuarbeiten, sondern mit den NavControler.

Tipp stelle dich um und benutze nicht mehr das alte zeug.
 

wer112

Top Contributor
ist auch depreacated
deshalb ist es besser nicht mehr mit der Transaction zuarbeiten, sondern mit den NavControler.

Tipp stelle dich um und benutze nicht mehr das alte zeug.
Wird dauern, da muss ich ein Video finden oder Anleitung, wie das geht.

Auch wenn ich dieses "Alte Zeug" verwende, was immer klappte. Alle Fragmente funktionieren nur das eine irgendwie garnicht. Ich werde mal recherchieren müssen. Auch mit dem alten Zeug muss das ja klappen, weil die anderen Fragmente auch klappen
 

wer112

Top Contributor
Dann zeige wie du das mit den anderen machst.
Das mit dem Geld Senden
XML:
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Geld_senden">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/error_textView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="40dp"
                android:gravity="center_horizontal"
                android:textColor="#ff0000"
                android:textSize="16sp"
                android:textStyle="bold" />


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">
                        <TextView
                            android:id="@+id/textView39"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="60dp"
                            android:layout_centerHorizontal="true"
                            android:text="Geld senden"
                            android:textColor="#e0e0e0"
                            android:textSize="25sp"
                            android:textStyle="bold" />


                        <ImageView
                            android:id="@+id/geldsenden_info"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/ic_info"
                            android:layout_marginTop="60dp"
                            android:layout_marginLeft="10dp"
                            android:layout_toRightOf="@id/textView39"
                            android:visibility="invisible"
                            />
                    </RelativeLayout>

            </LinearLayout>


            <TextView
                android:id="@+id/textView40"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="50dp"
                android:gravity="center_horizontal"
                android:text="Aktuelles Guthaben"
                android:textColor="#000000"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/textView41"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:gravity="center_horizontal"
                android:text="0,00€"
                android:textColor="#000000"
                android:textSize="30sp"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/geldSendenKunndennummer_Edit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="100dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:hint="Kundennummer"
                android:inputType="textPersonName" />

            <Button
                android:id="@+id/button3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/button_style"
                android:text="Prüfen" />

            <EditText
                android:id="@+id/verwendungszweck_editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:inputType="text"
                android:hint="Verwendungszweck" />

            <EditText
                android:id="@+id/editText_sendenBetrag"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:hint="Betrag"
                android:inputType="numberDecimal" />

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/button_style"
                android:text="senden" />

            <TextView
                android:id="@+id/textView42"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dp"
                android:gravity="center_horizontal"
                android:text="Spenden"
                android:textColor="#000000"
                android:textSize="18sp"
                android:textStyle="bold" />


        </LinearLayout>
    </ScrollView>
</RelativeLayout>

Die JAVA Seite Ohne Zeug:

Java:
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Geld_senden extends Fragment {


    String sessionID  = "";
    String guthaben = "0,00€";
    String kundennummer = "";

    String verwendungszweck = "";

    String verwengungsanzahl = "";
    String betrag = "0,00€";

    String packageName = BuildConfig.APPLICATION_ID;

    String sendenCode = "";
    String versionName = BuildConfig.VERSION_NAME;
    Integer appVersion = BuildConfig.VERSION_CODE;

    int modus = 0;

    String netzwerkart = "dummy";
    String wifi_name = "dummy";

    String wifi_stearke = "dummy";

    String simOperatorName = "dummy";




    TextView guthabenText, errorText, ueber, aktuelles_guthabenTextView, geldTextView;
    EditText kundennummer_edit, verwendungszweck_edit, betrag_edit;

    Button kn_btn, senden_btn;

    Button alert_hinweis_anonym_btn, alert_hinweis_sicherer_btn;

    ImageView info;

    private ProgressDialog progressDialog;

    AlertDialog.Builder builderDialoghinweiß;
    AlertDialog alertDialoghinweiß;

    private ALoadingDialog aLoadingDialog;

    WifiInfo wifiInfo;


        private static final int ACCESS_FINE_LOCATION_PERMISSION_CODE = 100;
    private static final int NEARBY_WIFI_DEVICES_PERMISSION_CODE = 200;



    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_geld_senden = inflater.inflate(R.layout.activity_geld_senden, null);



        //-------------------------- FindByID Zuweissungen ---------------------

        guthabenText = (TextView)fragmentlayout_geld_senden.findViewById(R.id.textView41);
        errorText = (TextView)fragmentlayout_geld_senden.findViewById(R.id.error_textView);
        ueber = (TextView)fragmentlayout_geld_senden.findViewById(R.id.textView39);
        aktuelles_guthabenTextView = (TextView)fragmentlayout_geld_senden.findViewById(R.id.textView40);


        kundennummer_edit = (EditText)fragmentlayout_geld_senden.findViewById(R.id.geldSendenKunndennummer_Edit);
        betrag_edit = (EditText)fragmentlayout_geld_senden.findViewById(R.id.editText_sendenBetrag);
        verwendungszweck_edit = (EditText)fragmentlayout_geld_senden.findViewById(R.id.verwendungszweck_editText);

        kn_btn = (Button)fragmentlayout_geld_senden.findViewById(R.id.button3);
        senden_btn = (Button)fragmentlayout_geld_senden.findViewById(R.id.button2);

        info = (ImageView)fragmentlayout_geld_senden.findViewById(R.id.geldsenden_info);
        //alert_hinweis_anonym_btn = (Button)fragmentlayout_geld_senden.findViewById(R.id.button_anonymer);
        //alert_hinweis_sicherer_btn = (Button)fragmentlayout_geld_senden.findViewById(R.id.button_sicherer_modus_alert);




        //Alles Unsichbar schalten

        errorText.setVisibility(View.INVISIBLE);
        ueber.setVisibility(View.INVISIBLE);
        aktuelles_guthabenTextView.setVisibility(View.INVISIBLE);
        guthabenText.setVisibility(View.INVISIBLE);
        kundennummer_edit.setVisibility(View.INVISIBLE);
        kn_btn.setVisibility(View.INVISIBLE);
        verwendungszweck_edit.setVisibility(View.INVISIBLE);
        betrag_edit.setVisibility(View.INVISIBLE);

        senden_btn.setVisibility(View.INVISIBLE);



        aLoadingDialog = new ALoadingDialog(getActivity());




        //------------------------------- Prüfen, ob man Geld senden darf -------------------------------------------------


        ErlaubnisPruefung();



        kn_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                KundennummerPrüfung();
            }
        });


        senden_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                GeldSenden();
            }
        });





        return fragmentlayout_geld_senden;
    }


    private void ErlaubnisPruefung(){
      

    }



    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

    private void GAbfrage() {

    }

    private void KundennummerPrüfung(){


    }

    private void GeldSenden(){


    }

    private void InternetProvider(){

    }

    private boolean abgelehntPermission(){
        
    }

    protected void trustPermission(){

      
    }


     private void Checkerneut(){

        
     }
    private boolean checkPermissions () {

        }



        @Override
        public void onRequestPermissionsResult ( int requestCode, @NonNull String permissions[],
        @NonNull int[] grantResults){
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
          

        }


    private void WIFIINFO(){
        

        Absenden();
    }


    private void Absenden(){

        TelephonyManager telemamanger = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE);
        simOperatorName = telemamanger.getSimOperatorName();




            

    }



}


Und das gleiche habe ich mit dem Ladebildschirm gemacht, hat aber nicht funktioniert. Alles klatcht immer noch oben in die Ecke
 

Jw456

Top Contributor
Auch hier hatte ich schon mal gesagt das in die onCreateView() nur das Laden des Layout gehört.

Du setzt auch schon in der Methode Werte obwohl das Layout noch nicht fertig geladen ist.
Fertig ist es in der onViewCreated. Da bekommst du auch die View.
 

wer112

Top Contributor
Auch hier hatte ich schon mal gesagt das in die onCreateView() nur das Laden des Layout gehört.

Du setzt auch schon in der Methode Werte obwohl das Layout noch nicht fertig geladen ist.
Fertig ist es in der onViewCreated. Da bekommst du auch die View.
Ich weiß, das du das gesagt hats, hat aber nixs gebracht. Das wird nicht richtig geladen. Bei den anderen Fragmente(mit dem alten Zeug) hat das angezeigt, ob wohl ich es falsch lade.
 

wer112

Top Contributor
Dazu gebe ich keinen Kommentar wer nicht will der hat schon.
Das reine Laden also richtig laden geht nicht.

Wenn ich nur das so habe geht es nicht:
Java:
    public ALoadingDialog aLoadingDialog;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseite_console, null);

        return fragmentlayout_ladeseite;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

}

Jetzt suche ich dein Code nochmal und schaue ob es geht, bisher hat es damals auf dieser Seite nicht funktioniert...

Finde in diesem Thread nicht
 

wer112

Top Contributor
onCreate() , onActtivityCreatd() sind veraltet wie oft denn nun noch.

Java:
 public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
     // hier hast du deine View dein Layout
  
 }

Auch nach dem umstellen des Codes, hat e nicht ordnungsmäßig angezeigt.
Java:
 public ALoadingDialog aLoadingDialog;




    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

        View fragmentlayout_ladeseite = inflater.inflate(R.layout.activity_ladeseite_console, null);
        return fragmentlayout_ladeseite;
    }

    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        // hier hast du deine View dein Layout

    }
 

Jw456

Top Contributor
Du hast ein Relativlayout
Darin machst du ein ScrolllView ohne Angabe wo es im Relativ sein soll.

Dann machst du ein Linear in dem noch eins dann wider ein Relativ.
Und wider keine Angabe wo es relativ sein soll. ….


Schaue wie ein Relativ Layout geht.

 

wer112

Top Contributor
Du hast ein Relativlayout
Darin machst du ein ScrolllView ohne Angabe wo es im Relativ sein soll.

Dann machst du ein Linear in dem noch eins dann wider ein Relativ.
Und wider keine Angabe wo es relativ sein soll. ….


Schaue wie ein Relativ Layout geht.

Hatte Ursprünglich diesen Code, wo du gesagt hattest, das es passt. Aber das geht trotzdem nicht.

Der Code den du erlaubt hattest:

XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ladeseiteconsole">


    <TextView
        android:id="@+id/textView_error_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="ERROR TEXT"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#ff0000"
        android:visibility="invisible"/>





    <ProgressBar
        android:id="@+id/progressBar_entwickler_pruefen"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/textView_bittewarten_ladeconsole"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/progressBar_entwickler_pruefen"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="60dp"
        android:text="Bitte warten ..."
        android:textColor="#000000"
        android:textStyle="bold"
        />



</RelativeLayout>

Oder mal im ConstrainLayout versucht:

XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Ladeseite_Console">
    <?xml version="1.0" encoding="utf-8"?>
    

        <TextView
            android:id="@+id/textView_error_ladeconsole"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_marginTop="30dp"
            android:text="ERROR TEXT"
            android:textStyle="bold"
            android:textSize="20sp"
            android:textColor="#ff0000"
            android:visibility="invisible"/>





        <ProgressBar
            android:id="@+id/progressBar_entwickler_pruefen"
           app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/textView_bittewarten_ladeconsole"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/progressBar_entwickler_pruefen"
            android:layout_below="@id/progressBar_entwickler_pruefen"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="60dp"
            android:text="Bitte warten ..."
            android:textColor="#000000"
            android:textStyle="bold"
            />



</androidx.constraintlayout.widget.ConstraintLayout>



Das Layout von dem Geld Senden, was falsch in Java eingebunden ist, sieht so aus:
XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Geld_senden">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/error_textView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="40dp"
                android:gravity="center_horizontal"
                android:textColor="#ff0000"
                android:textSize="16sp"
                android:textStyle="bold" />


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">
                        <TextView
                            android:id="@+id/textView39"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="60dp"
                            android:layout_centerHorizontal="true"
                            android:text="Geld senden"
                            android:textColor="#e0e0e0"
                            android:textSize="25sp"
                            android:textStyle="bold" />


                        <ImageView
                            android:id="@+id/geldsenden_info"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/ic_info"
                            android:layout_marginTop="60dp"
                            android:layout_marginLeft="10dp"
                            android:layout_toRightOf="@id/textView39"
                            android:visibility="invisible"
                            />
                    </RelativeLayout>

            </LinearLayout>


            <TextView
                android:id="@+id/textView40"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="50dp"
                android:gravity="center_horizontal"
                android:text="Aktuelles Guthaben"
                android:textColor="#000000"
                android:textSize="18sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/textView41"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:gravity="center_horizontal"
                android:text="0,00€"
                android:textColor="#000000"
                android:textSize="30sp"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/geldSendenKunndennummer_Edit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="100dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:hint="Kundennummer"
                android:inputType="textPersonName" />

            <Button
                android:id="@+id/button3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/button_style"
                android:text="Prüfen" />

            <EditText
                android:id="@+id/verwendungszweck_editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:inputType="text"
                android:hint="Verwendungszweck" />

            <EditText
                android:id="@+id/editText_sendenBetrag"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/input_style"
                android:ems="10"
                android:hint="Betrag"
                android:inputType="numberDecimal" />

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="50dp"
                android:layout_marginRight="25dp"
                android:background="@drawable/button_style"
                android:text="senden" />

            <TextView
                android:id="@+id/textView42"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dp"
                android:gravity="center_horizontal"
                android:text="Spenden"
                android:textColor="#000000"
                android:textSize="18sp"
                android:textStyle="bold" />


        </LinearLayout>
    </ScrollView>
</RelativeLayout>
Und das geht auch ohne ScrollView, das hatte ich erst Später hinzugefügt.

Habe es mal it Scrollview probiert: Hat leider auch nicht funktioniert. Hat nicht in die Mitte gemacht, wie im Vorschau...
 

Jw456

Top Contributor
Hast du dir den link zum relativelayout mal angesehen und verstanden?


Dein Geld senden Layout sieht noch genauso aus wie in post #33.


Relativ heißt du musst jeder view sagen wo sie in dem layout seinsoll.

Jede view dazugehört auch linearlayout, scrollview, TextView wenn sie nicht in einem linearlayout ist.

Du hast zwar deiner ersten view eine weite und höhe gegen aber keine Angabe wo es relativ im Layout ist oder sein sollte. Zb oben im Eltern Layout.

Das geht bei dem Linearlayout weiter. Keine Angabe.

So und nun lese welche Eigenschaften das sind und welche es gibt.

Wenn keine angaben gemacht werden klar dann sortirt android alles oben links ein.
 

Jw456

Top Contributor
In allen relativ Layouts hast du keine Verbindung zum Eltern Layout.


Zb
android:layout_alignParentTop="true“
Top, oben ist ja nicht die einzige Möglichkeit die zur Verfügung steht.
 

Jw456

Top Contributor
zu Post #7
Der Container in dem ein Fragment angezeigt wird sollte auch kein Relativlayout sein sondern besser nur ein <Framelayout>. oder noch einfacher ein <fragment>

in etwa so
Java:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:id="@+id/drawer"
    tools:openDrawer="start"
    tools:context=".fragment_steuerung">


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#e0e0e0"/>

        <fragment
        android:id="@+id/homelayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        />

    </RelativeLayout>
 

wer112

Top Contributor
In allen relativ Layouts hast du keine Verbindung zum Eltern Layout.


Zb
android:layout_alignParentTop="true“
Top, oben ist ja nicht die einzige Möglichkeit die zur Verfügung steht.
Also ich benutze am häufigsten: android:layout_centerHorizontal="true", android:layout_centerInParent="true"

und aktuell häufig: android:layout_alignParentLeft="true" oder das rechte.

wird immer richtig in dem vorrschau dargestellt, nur net auf dem Handy.
 

wer112

Top Contributor
zu Post #7
Der Container in dem ein Fragment angezeigt wird sollte auch kein Relativlayout sein sondern besser nur ein <Framelayout>. oder noch einfacher ein <fragment>

in etwa so
Java:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:id="@+id/drawer"
    tools:openDrawer="start"
    tools:context=".fragment_steuerung">


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#e0e0e0"/>

        <fragment
        android:id="@+id/homelayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        />

    </RelativeLayout>
Beim Fragment stürzt die App ab. Bei dem framelayout, funktioniert, wie es soll. Ich glaube, hast woanders es mal gesagt.

Ich verstehe es immer noch nicht, warum der Rest ohne dieses <Layout funktioniert hatte und hier nicht, wo liegt das Problem?
 

Jw456

Top Contributor
Na dann mache dir doch mal klar was du hier hast.

ein Relativ in der Activity was auch eine relative Ortsangabe hat.
in Fragment hast du wider ein Relativ und hier ohne relative Ortsangabe.
Darin machst du wider ein Relativ layout ohne Angabe wo es hin soll.

Das in der Activity ist der Container in dem das Fragment layout angezeigt wird.
 

Neue Themen


Oben