Android Studio – die meistgelesenen Beiträge

Unreal Engine oder doch eher Blender?

Nun ich fange mal so an,

ich habe mich dazu entschlossen eine App zu programmieren die allerdings nicht einem Spiel oder anderem ähnelt, sondern eine App welche mit einem anderem, auch von mir entwickeltem, Produkt kommunizieren soll, sei es über Bluetooth oder über WLAN. Nun habe ich mir überlegt, dass die Oberfläche der App so gestalten werden soll, das es nicht wie jede anderen herkömmliche App aussieht, sondern zum Teil 3D Design und mit 3D Animationen. Ich möchte erst einmal mit Android Arbeiten, IOS steht fürs erste Außen vor. Mein Gedankengang war so das ich beispielsweise ein kleines Modell in 3D designe und diesen in der App betrachten kann und entsprechende Funktionen aktivieren kann. Dabei ist mir in den Sinn gekommen das Modell in Blender zu designen und später bei Android Studio mit einzubauen und damit zu arbeiten. Dabei ist zu beachten das hierbei sehr Hardware nah programmiert wird, weshalb ich C/C++ nutzen werden. Android Studio unterstützt diese Sprache, Blender auch. Nun habe ich nach gelesen das Unreal Engine auch mit C/C++ klarkommt. Der Unterschied ist allerdings das Blender ein Modellierungsprogramm ist und Unreal Engine eine Game-Engine. Nun stehe ich so bisschen auf dem Schlauch. Was würdet ihr denn so Empfehlen b.z.w raten? Eventuell liege ich ja ganz falsch und es gibt andere Methoden meinen Wunsch zu ermöglichen. Freue mich schon auf eure Antworten!

Computer, Technik, Blender, 3D Modelling, Blender 3D, Technologie, blender-game-engine, Unreal Engine, app entwicklung, Android Studio, Unreal Engine 4

Wie bekomme ich Daten aus einer bestimmten Zeile (Sqlite, Android Studio?

(Ich bin noch relativ neu in Android Studio, bzw. Programmieren generell, aber learning by doing und so) Ich will die Daten die ich zuvor in die Datenbank gespeichert habe, auslesen und als Beschriftung eines Buttons einfügen. Da ich keine Zeilen hinzufügen oder löschen will, werden bei erstellen der Tabelle gleich alle Zeilen mit erstellt, so dass ich deren IDs habe. Nun ich hab ich versucht eine Lösung zu finden, jedoch crasht die App wenn ich mein Herumgemurckse ausführe (was wahrscheinlich nicht verwunderlich ist ^^' ) Der Name der Datenbank usw.:

    public static final String DATABASE_NAME = "stundenplan.db";
    public static final String TABLE_NAME = "faecher";
    public static final String COL_1 = "ID";
    public static final String COL_2 = "fach";
    public static final String COL_3 = "farbe";

Die getData() Methode aus der DatabaseHelper Class:

public Cursor getData(){
        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
        Cursor res = sqLiteDatabase.rawQuery("SELECT * FROM " + COL_2 + " WHERE "  + COL_1 + " = 1", null);
        return res;
    }

Die onClick() Methode aus der (Tabbed) Activity:

btn_ok.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Cursor res = myDB.getData();
                    btn_mo1 = view.findViewById(R.id.btn_mo1);
                    btn_mo1.setText(res.getString(1));
                }
            });

Ich bekomme übrigens keinen Fehlercode oder so.

Computer, Technik, programmieren, Java, Android, Technologie, SQLite, Android Studio, Spiele und Gaming

jetpack compose - wie starte ich eine neue Activity?

Hallo zusammen

Ich habe folgendes Composable in meinem Code:

@Composable
fun Toolbar() {

    // Create a boolean variable
    // to store the display menu state
    var mDisplayMenu by remember { mutableStateOf(false) }

    // fetching local context
    val mContext = LocalContext.current

    // Creating a Top bar
    TopAppBar(
        title = { Text(stringResource(R.string.app_name)) },backgroundColor = Color(0xFFFFFFFF),
                actions = {

                    // would create a Toast message
                    IconButton(onClick = {
                        val intent = Intent(this, LockScreenActivity::class.java)
                        startActivity(intent)
                        Toast.makeText(mContext, "Lock app...", Toast.LENGTH_SHORT).show() }) {
                        Icon(Icons.Outlined.Lock, "")

Nun möchte ich gerne, dass wenn man auf das lock icon klickt, die dazugehörige Activity "LockScreenActivity" gestartet wird. Folgende Fehlermeldung erhalte ich jedoch bei "val intent = Intent"

None of the following functions can be called with the arguments supplied.
<init>(Context!, Class<*>!) defined in android.content.Intent
<init>(String!, Uri!) defined in android.content.Intent

Ich weiss nicht genau, warum diese Fehlermeldung auftritt bzw. warum es nun noch ein Argument benötigt. Könnte mir bitte Jemand helfen?

Eine Zeile weiter unten bestätigt sich nochmals mein Fehler mit der Meldung No value passed for parameter 'intent'

No value passed for parameter 'intent'

Vielen Dank für jede Hilfe.

programmieren, Android, Code, compose, Android Studio, Kotlin

Android Studio: Wieso verändern die Elemente ihre Position?

Hey,

ich habe da ein kleines Problem. Auf dem PC sind alle Elemente dort, wo sie sein sollten, aber wenn ich die App auf dem Handy ausführe, sind die Elemente irgendwie bzw. irgendwo platziert. Kann mir jemand vielleicht sagen, woran es liegen könnte?

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@color/black_shade_1"
  tools:context=".MainActivity">
  <ImageView 
    android:layout_width="152dp"
    android:layout_height="185dp" 
    app:srcCompat="@drawable/iconqrlogo" 
    android:id="@+id/imageView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="32dp"
    app:layout_constraintHorizontal_bias="0.498" />
  <ProgressBar
    style="?android:attr/progressBarStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progressBar"
    android:visibility="visible"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    android:layout_marginTop="56dp"
    app:layout_constraintTop_toBottomOf="@+id/imageView" />
  <Button
    android:text="@string/generateButton"
    android:layout_width="250dp"
    android:layout_height="60dp"
    android:id="@+id/generateQrCode"
    app:backgroundTint="@color/yellow"
    android:textColor="#000000"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintHorizontal_bias="0.496"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="160dp" />
  <Button
    android:text="@string/scanCode"
    android:layout_width="250dp"
    android:layout_height="60dp"
    android:id="@+id/scanQrCode"
    app:backgroundTint="@color/yellow"
    android:textColor="#000000"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/progressBar"
    android:layout_marginTop="48dp"
    app:layout_constraintHorizontal_bias="0.503"
    app:layout_constraintBottom_toTopOf="@+id/generateQrCode"
    app:layout_constraintVertical_bias="0.061" />
</androidx.constraintlayout.widget.ConstraintLayout>
Bild zum Beitrag
Computer, App, programmieren, Java, Android, Android App, Android Studio

Wieso ändern sich die Position der Elemente am Handy?

Hey Leute,

ich habe ein kleines Preoblem und zwar die Positionen der Elemente im Android Studio enspricht nicht der am Handy also am Handy werden sie komplett anders angeordernt und nicht wie ich sie im Android Studio positioniert hatte.

Z.B. der Button sollte oben sein und nicht unten!

Hat jemand vielleicht eine Idee voran es liegen könnte?

Danke im Voraus


  

<?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=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="158dp"
        android:layout_marginBottom="274dp"
        android:text="@string/button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>



---------------------------manifest------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test">

    <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/Theme.Test">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


-----------------gradle-------------------------
plugins {
    id 'com.android.application'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.test"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        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.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Bild zum Beitrag
programmieren, Design, Java, Android App, Android Studio

Android App Entwicklung: Verschiedene Benutzerrollen?

Hallo alle zusammen,

ich möchte gerne anfangen mit der Android App Programmierung und möchte gerne ein kleines privates Projekt realisieren.

Es geht darum, dass zuerst ich als "SupderAdmin" Accounts anlegen kann (normale Admins), die widerum selbst Accounts anlegen können (normale User).

Je nachdem, welche Rolle man hat, stehen einem mehr Funktionalitäten zur Verfügung.

Ein Admin kann zum Beispiel einen normalen User anlegen. Der User hat, wenn er die App öffnet, seinen "Kontostand" und seine Einnahmen/Ausgaben vor Augen. Diese Beträge werden vom Admin festgelegt, d.h. der Admin gibt zuerst eine Gesamtsumme an. Wenn der User was eingekauft hat, erstellt der Admin einen Beitrag "Ausgabe" mit Details und Betrag und dieser Betrag wird automatisch dann von der Gesamtsumme abgezogen.

Sozusagen eine Online Banking App, nur dass Einnahmen/Ausgaben manuell eingetragen werden.

  1. Frage gibt es eine Bibliothek o.Ä. in Java mit der die Benutzerrechte realisiert werden können.
  2. Möchte ich gerne mit einer Datenbank arbeiten, die dann die Accounts speichert und die dazugehörigen Einnahmen Ausgaben usw. welche kostenlose Datenbank würdet ihr mir dafür empfehlen?

Das Projekt soll mit der Zeit bestimmt erweitert werden, weshalb ich mich nicht auf irgendwas beschränken will, das nur für die oben angezeigten Funktionalitäten erfüllt.

Vielen Dank!

Computer, Auto, programmieren, Informatik, Appentwicklung, Android Studio

Flutter-Future<List> als List zurück geben?

Heeeeey Leute,

Ich rufe eine Liste aus der Datenbank ab und will daraus eine Liste auf der App visualisieren.

Aber in einer async Funktion kann ich keine liste zurück geben.
Wie bekomme ich die Liste jetzt in meinen build.

Code sieht so aus

  void missionEntries()async{
    final Future<List>mission=DBManagement().getAll();
    List missions=await mission.then((value) => null);
  }

  @override
  Widget build(BuildContext context) {
    missionEntries();
    return Expanded(
      child: Container(
        child: ListView.builder(
          itemCount: missions.length,
          itemBuilder: (context, index) {
            return GestureDetector(
              onLongPress: ()=>print("Eintrag bearbeiten!"),
              onTap: ()=>print("Eintrag einsehen!"),
              child: Card(
                child: Row(
                  children: <Widget>[
                    Expanded(
                      child: Text(
                        missions[index]["num"],
                        textAlign: TextAlign.center,
                      ),
                    ),
                    Expanded(
                      child: Text(missions[index]["location"]),
                    ),
                    Expanded(
                      child: Text(missions[index]["date"].toString()),
                    ),
                    Expanded(
                      child: Text(missions[index]["time"].toString()),
                    ),
                    Expanded(
                      child: IconButton(
                        icon: Icon(Icons.delete),
                        onPressed: ()=>print("löschen")
                      )
                    ),
                  ],
                ),
              ),
            );
          }
        ),
      ),
    );
  }

und missionEntries(); müsste eigentlich zu

List missions=missionEntries() werden weil ich die missions liste

ein paar zeilen weiter im ListView.builder brauche.

Hoffe Ihr könnt mir helfen.

programmieren, Scripten, Visual Studio, Flutter, Android Studio

Android App löscht Session automatisch bei onDestroy?

Ich habe eine App, wo man sich anmelden muss.

Die SessionID wird in der Login Activity empfangen und gespeichert. Wenn ich auf einer anderen Activity bin, hole ich die SessionID aus den ShaPref und hänge sie an den Header. Dann erhalte ich einen Response. Alles funktioniert einwandfrei.

Aber sobald ich die App schließe und den Login überspringe, dann wird ja die SessionID wieder aus den ShaPref geholt und an den Header gehängt.

Die SessionID ist weiterhin vorhanden! Dies prüfe ich anhand des Toast und Logs.

Aber ich erhalte den Response, dass ich ausgeloggt sei. Und die Session ist komplett leer.

Meine Vermutung ist:

Das die SessionID nur der Ort ist, wo die Datei mit den Werten gespeichert ist. Also das ich die SessionID an den Header hänge und dann weiß die Seite, welche Datei benutzt werden soll. Aber wenn man aus der App herausgeht, löscht Android automatisch diese Datei. Doch die SessionID-Adresse bleibt bestehen.

Fragen:

  • Wie kann ich die App schließen, ohne dass Android die Datei löscht?
  • Wo wird die Session auf dem Handy gespeichert? Ich kann es ja am PC einsehen.
  • Wie kann ich verhindern, dass Androids onDestroy etc. die Datei löscht?

Und wie kann ich dafür sorgen, dass Android bei onDestroy etc. die Datei löscht?

Wenn ich angemeldet sein möchte und ich herausgehe und wieder rein, bleibt die SessionID. Aber auf der Webseite ist sie leer. Aber wenn ich nicht angemeldet sein möchte, dann wird die ShaPref gelöscht und dann soll auch die Datei gelöscht werden.

Ich hoffe, ihr habt eine Lösung, wie man die automatische Löschung von dieser Datei bei Verlassen der App verhindert.

Ich danke euch im Voraus.

App, programmieren, Java, Android, session, Speicherort, Android Studio