Der Screenshot stammt von dem LogIn-Bereich, der von Google (bzw. Firebase) erstellt wurde. Es wird beim Start der App automatisch aufgerufen.
Beiträge von Nootrop
-
-
Ich habe das Problem gelöst, habe in die styles.xml die Zeile <item name="android:textColor">@android:color/black</item> eingefügt, scheinbar war die Schriftfarbe des Buttons weiß!
Danke euch für die Rückmeldungen! -
Du meinst sicher die .xml und .java der Activity, in der der LogIn enthalten ist, oder? Sorry, ich bin noch nicht lang in der Materie. Hoffe, es ist so leserlicher, ansonsten bitte bescheid geben, dann ändere ich es noch einmal!
Code: MainActivity.xml
Alles anzeigen<?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" android:background="@drawable/tafel2" tools:context=".MainActivity"> <Button android:id="@+id/startbutton" android:layout_width="200dp" android:layout_height="70dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="150dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:background="@drawable/startbutton1" android:textSize="24sp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btn_sign_out" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="70dp" android:enabled="false" android:text="@string/signout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/rubrikbutton" /> </androidx.constraintlayout.widget.ConstraintLayout>
Java: MainActivity.java
Alles anzeigenpackage ...; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.firebase.ui.auth.AuthUI; import com.firebase.ui.auth.IdpResponse; import com.google.android.gms.auth.api.Auth; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final int MY_REQUEST_CODE = ...; List<AuthUI.IdpConfig> providers; Button btn_sign_out; private FirebaseDatabase database = FirebaseDatabase.getInstance(); private DatabaseReference myRef = database.getReference(); Button startbutton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_sign_out = (Button) findViewById(R.id.btn_sign_out); btn_sign_out.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Logout AuthUI.getInstance() .signOut(MainActivity.this) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { btn_sign_out.setEnabled(false); showSignInOptions(); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(MainActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show(); } }); } }); providers = Arrays.asList( new AuthUI.IdpConfig.EmailBuilder().build(), new AuthUI.IdpConfig.PhoneBuilder().build(), new AuthUI.IdpConfig.FacebookBuilder().build(), new AuthUI.IdpConfig.GoogleBuilder().build() ); showSignInOptions(); } private void showSignInOptions() { startActivityForResult( AuthUI.getInstance().createSignInIntentBuilder() .setAvailableProviders(providers) .setTheme(R.style.MyTheme) .build(), MY_REQUEST_CODE ); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == MY_REQUEST_CODE) { IdpResponse response = IdpResponse.fromResultIntent(data); if (resultCode == RESULT_OK){ //Get User FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); //Show E-Mail on toast Toast.makeText(this, ""+user.getEmail(), Toast.LENGTH_SHORT).show(); //Set button Sign-Out btn_sign_out.setEnabled(true); } else { Toast.makeText(this, ""+response.getError().getMessage(), Toast.LENGTH_SHORT).show(); } } } }
-
Hallo!
Ich habe in meine App via Firebase Authentication einen LogIn-Bereich eingefügt (Facebook, Telefonnummer, Google, Email). Wenn man sich über E-Mail einloggen möchte, sieht man bei der Passworteingabe dort, wo der Button "Anmelden" steht, nur einen leeren Rahmen ohne Schrift (siehe Foto). Kann mir jemand sagen, wie ich diesen Schriftzug sichtbar machen kann?Anbei der Inhalt meiner styles.xml und vom Manifest, falls das wichtig sein sollte.
Styles:
<resources><!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style><style name="MyTheme" parent="AppTheme">
<item name="android:windowBackground">@android:color/white</item>
</style></resources>manifest:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="...">
<uses-permission android:name="android.permission.INTERNET"/><supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"/><application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".AboutUs"></activity>
<activity android:name=".Themen" />
<activity android:name=".Abfrage" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application></manifest>
-
Danke für deine Antwort. Du hast wahrscheinlich recht, ich muss mich erstmal in Java reinarbeiten. Hatte gehofft, zwei Fliegen mit einer Klappe zu schlagen
-
Hallo
Ich bin wirklich ganz frischer Anfänger auf der Materie und erst seit wenigen Tagen dabei, mich in Android Studio hineinzufitzen (leider mit bisher begrenzten Java-Kenntnissen). Dazu erstelle ich ein Minispiel aus einem Tutorial. Ich scheitere gerade daran, dass die von mir aus dem Tutorial abgetippten Inhalte sich nicht so richtig in die App einfügen lassen wollen. Ich vermute, es liegt daran, dass AS die Befehle nicht kennt? Google hilft mir nicht so richtig weiter, ich bin ja wirklich noch beim Urschleim. Was genau muss ich denn tun (Create local variable? Create field? Create parameter?), um das ganze richtig einzufügen?
Danke im Voraus für eure Hilfe