Anzeige laufende App

  • 84 Antworten
  • Letztes Antwortdatum
Status
Dieses Thema wurde gelöst! Zur Lösung springen…
jogimuc schrieb:
Wenn dann mindestens das plugin auf 7.4.
Aber du weißt die einwende von swa00.


Doch könntest du recht daneben den kleinen Button klicken.
Moin.

Ja, gelesen. Wollte es auch nur mal ausprobieren. Hat ja auch nicht geklappt.
Den kleinen Button habe ich probiert, da konnte ich auch nix auswählen.
Vielleicht ist ja nur die eine Plugin Version installiert?!

LG Heiko
Beiträge automatisch zusammengeführt:

Hi Stefan,

gut und ausführlich geschrieben. Vielen Dank dafür.

Ich weiß jetzt noch nicht ob ich dann weiter mache. Bringt so irgendwie nix. Davon abgesehen mein Rechner ist zu alt und hat zu wenig RAM. Da dauert es sowieso ellenlang bis was läuft.

Oder ich probiere mich an Download Android Studio & App Tools - Android Developers. Mal schauen.


Wünsche Euch noch einen schönen Tag und guten Wochenstart.

LG Heiko
Beiträge automatisch zusammengeführt:

Eins vielleicht noch, wozu brauche ich das scrcpy.exe? Das Grundgerüst Empty Views Activity lief auch ohne scrcpy.exe auf meinem Handy.
 
Zuletzt bearbeitet:
Eins vielleicht noch, wozu brauche ich das scrcpy.exe? Das Grundgerüst Empty Views Activity lief auch ohne scrcpy.exe auf meinem Handy.

Grund : Arbeitsablauf - Optimierung

Wenn das Device angeschlossen ist , du aber nicht auf dem physischen Device immer wieder mit dem Finger rumklicken willst ( manchmal super lästig) kannst du das Device auf deinem Desktop spiegeln .
Entweder nimmt man die in AS eingebettete Funktion "Device Mirroring" oder scrcpy.

Die Variante von AS ist aber buggy, deshalb meine Empfehlung zu scrcpy incl. Maussteuerung.
Du musst quasi nicht immer die Hand von der Tastatur/Maus nehmen.

Hier ein Beispiel, wie ich es auf dem Hauptbildschirm habe

1698667134100.png
 
Zuletzt bearbeitet:
Du meinst gegen den Ruhezustand ne? Da habe ich beim S9 in den Entwickleroptionen das Aktiv lassen eingeschaltet.

Schönen Abend noch.

LG Heiko
 
Nein , hat nichts mit dem Ruhezustand zu tun - das habe ich auch oben gar nicht erwähnt.

Es ist der Emulator Ersatz ... der bekanntlich nicht ordentlich läuft
 
Zuletzt bearbeitet:
Welche Dateien müßte ich runterladen?
Wie in deinem Link ausgewiesen : Die letzte stabile Version in AS importieren .
1698688239829.png

a) Du musst halt auch auf die Bibliotheken & Gradle achten - genau so wie in den letzten Tagen hier diskutiert.
b) Und es ist nicht Java sondern hauptsächlich JetPack composer- mit einem bischen Kotlin

Hinweis:
Für eine eventuelle Hilfe wäre ich dann aber hier raus , da es wenig mit der eigentlichen nativen Programmierung zu tun hat und ich persönlich in JetPack Composer nicht fit bin.

Alternative Anlaufstelle :
Kodeco Forums
 
Zuletzt bearbeitet:
swa00 schrieb:
Wie in deinem Link ausgewiesen : Die letzte stabile Version in AS importieren .
1698688239829.png

Sorry, aber ich scheine blind zu sein. Wenn ich den Link (here) anklicke, komme ich doch auf die Seite wo ich AS runterladen kann. Wo soll ich da was importieren? Das Gradle habe ich doch in AS?!
 
Wie bereits angemerkt :

Ab diesem Punkt kann ich leider nicht mehr unterstützen , da ich das obige Repository nicht kenne.

Viel Erfolg
 
Zuletzt bearbeitet:
Moin.
OK, vielen Dank für Deine Beantwortung.

Ich weiß (noch) nicht ob es für mich noch lohnt weiter zu machen.
Oder man müßte ne ältere AS Version installieren. Aber woher weiß ich welche AS-Version ich brauche?

LG Heiko
 
Wie frage ich denn grundsätzlich so einen Button ab? Und wie geht das mit switch case? Gibts keine Dokumentation über sowas? Notfalls auch auf Englisch, lasse ich dann über Google laufen.
Danke.

LG Heiko
 
Du brauchst keine ältere AS Version um dein Tutorial durch zuspielen. Wie gesagt gehe für diese Test App auf plugin 7.4.2
 
Data2006 schrieb:
Wie frage ich denn grundsätzlich so einen Button ab?
Schaue post 13

Wenn der Listener aufgerufen wird weist du ja von wo von wem er kommt.

Da war ich zu langsam
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: swa00
jogimuc schrieb:
Du brauchst keine ältere AS Version um dein Tutorial durch zuspielen. Wie gesagt gehe für diese Test App auf plugin 7.4.2
Kann nicht downgraden:
1698772602807.png

Und wie schon geschrieben ich kann auch hier kein 7.4.2 auswählen. Weder im Textfeld selber, noch über den kleinen Pfeil:
1698773092130.png




Code aus #13 hatte ich ja genommen gehabt. Nur das switch case... hat nicht funktioniert.

Habe was gegoogelt, evtl. habe ich was gefunden. Nur habe ich mein Projekt schon wieder gelöscht. Muß ich eben neu anlegen.

LG Heiko
 
Code aus #13 hatte ich ja genommen gehabt. Nur das switch case... hat nicht funktioniert.

Es wäre ausserordentlich zielführend(für Dich), wenn du auch jede Zeile in diesem Post lesen würdest - auch die Farbigen .
Dafür mache ich mir ja die Mühe, exakte Anweisungen zu schreiben.


Beispiel genau zum Thema: ( wir nehmen den Mauerbau )

Du : Mein Zement Typ A will nicht richtig kleben.
Ich : Nimm bitte Typ B lass Typ A weg , denn Typ A entspricht nicht mehr den Bauvorschriften.
Du : Ok, dann mische ich mal Typ B mit Typ A - muss ja doppelt halten ( denke ich mal )
Und außerdem ist es mir Schnuppe was die da sagen/schreiben - ich habe ein Video - das ist tollll !!!

Fazit : Jetzt klebt gar kein Stein mehr - Jetzt reisse ich am besten die komplette Mauer ein (Projekt gelöscht) und baue gar kein Haus mehr (Sch*** Android) :)

Auch hier stellt sich dann die Frage , warum man immer wieder gebetsmühlenartig alles nochmal schreiben muss.
(Wie bei anderen Themen auch)

Zumal du auf Antworten nicht eingehst - und vor allem nicht hinterfragst , sondern lieber ignorierst
Man schreibt was und Zack ! - direkt dahinter kommt was komplett Anderes von Dir.
Als hätte man gar nichts geantwortet.


@jogimuc
Bitte begrabe am Besten das PluginThema - es führt nur noch mehr zu Unstimmigkeiten -
Er ist leider noch nicht so weit, überhaupt zu verstehen , was du meinst.
Auch wenn du es gut gemeint hast .
 
Zuletzt bearbeitet:
swa00 schrieb:
Bitte begrabe am Besten das PluginThema - es führt nur noch mehr zu Unstimmigkeiten -
Er ist leider noch nicht so weit, überhaupt zu verstehen , was du meinst.
Auch wenn du es gut gemeint hast .
Ok wenn er sein Downgrade nicht schafft. Den kleinen Button nicht benutzt und in dem folge Dialog die Nummer nicht ändern kann.

Ich werde mich dem Wunsch von keiner Hilfe mehr beugen.

Hoffe er versteht es irgendwann mal.
Da hast du sicher noch was vor dir.
;)
 
Zuletzt bearbeitet:
Moin.

Habe meine App abgeändert. Statt mit switch case mache ich es mit if:
Code:
package com.heiko.aeandroidkochbuch;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tvName;
    private EditText etName;
    private Button btName;
    private String gbName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvName = findViewById(R.id.textViewName);
        etName = findViewById(R.id.editTextName);
        btName = findViewById(R.id.buttonName);

        tvName.setText("Ich möchte Deinen Namen wissen.");
        btName.setText("Zum Speichern Button drücken");

        findViewById(R.id.buttonName).setOnClickListener(this);
    }

@Override
    public void onClick(View v) {
int id = v.getId();

        if (id == R.id.buttonName) {
gbName = etName.getText().toString();
        }

    }
}

Jetzt läuft es.

Gute Nacht, Heiko
 
Na jetzt sind wir schon mal ein großes Stück weiter - herzlichen Glückwunsch .:1f44b:

Hier jetzt als Anregung einige Verbesserungsvorschläge , damit du deinen Stil direkt im Vorfeld optimierst und auch ein wenig "zukunftsweisender" arbeitest.
(Und ich hoffe diesmal , dass du dir das genau durchliest - und vor allem beherzigst und mal umsetzt)


a ) es ist nicht effektiv, zweimal die gleiche Instanz eines Elementes aus dem Layout zu ermitteln, insbesondere beim Start der App.
Sie hat dann doppelt zu tun und kann u.U. "hakeln".


aus
Code:
   btName = findViewById(R.id.buttonName);
 findViewById(R.id.buttonName).setOnClickListener(this);

wird daher
Code:
 btName = findViewById(R.id.buttonName);
 btName.setOnClickListener(this);


Aber ich komme nochmal auf Post #13 zurück
Derzeit verwendest Du eine Implementierung des OnClick Listener über das gesamte Main
Code:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
und somit einen "globalen" ClickListener indem du darin dann mit "if" auswertest, welcher Button gedrückt wurde
Code:
@Override
    public void onClick(View v) {
int id = v.getId();
        if (id == R.id.buttonName) {

Ja , das kann man machen - dieser Stil wird bald unübersichtlich werden und ist eigentlich Blödsinn (veraltet)

Warum ?
Willst du nur einen Knopf abändern, musst du das direkt an zwei - drei Stellen im Code tun - das geht besser.

Und vor Allem :
Es wird noch einige Anwendungen in Deiner Koch-App geben, bei dem du keinen globalen Listener verwenden kannst
( z.b. ein Click auf einen Listeneintrag)


Daher als Lösungsvorschlag um das zu umgehen UND dir schon den richtigen Stil angewöhnst :

Ziel : Entferne den globalen ClickListener...

Schritt 1) lösche "implements View.OnClickListener"
Schritt 2) lösche den "@override public void onClick(View v)" Block

... und weise jedem Knopf /Element direkt einen eigenen ClickListener zu

Schritt 3)
Code:
btName = findViewById(R.id.buttonName);
btName.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
             gbName = etName.getText().toString();
            }
        });

Fertig !
Aus 20 Zeilen Code , werden nur noch 5 - und die sind auch noch effektiver

Es geht sogar noch kompakter, das habe ich aber an dieser Stelle bewusst weggelassen.
Step by Step
 
Zuletzt bearbeitet:
Moin.

Vielen Dank für die Ausführungen. Habe meinen Code abgeändert. Läuft auch.

Werde mir die Dateien mal ausdrucken. So ganz raffe ich die Syntax noch nicht.

Ich hätte aber noch paar Fragen. Wenn ich z. B. private Button btName; mache, deklariere ich eine Variable vom Datentyp (Klasse oder was ist das?) Button oder einen Zeiger Button wie bei C/C++?
Und btName = findViewById(R.id.buttonName); weise ich da der Variablen btName den Wert von findView... zu oder ist btName dann ein Zeiger auf findView...?

Lieben Dank,
Heiko


PS: Ich habe jetzt kein if und switch case mehr im Programm, aber für die Zukunft, wenn ich if/elseif/else mehrfach kombiniere, ist dann switch case nicht besser? Aber switch case hat bei mir ja nicht geklappt. Die Fehlermeldungen habe ich ja gelesen, wußte aber nicht die zu deuten.
 
Fast alles in einem Layout sind UI Klassen und werden von der Klasse "View" vererbt
Deswegen kannst du auch auf fast alle UI Klassen einen Clicklistener setzen - er ist in der View Klasse bereits implementiert (Vererbung)

Und btName = findViewById(R.id.buttonName); weise ich da der Variablen btName den Wert von findView... zu oder ist btName dann ein Zeiger auf findView...?

Auch hier : findView ist NUR die Referenz (id) auf die Klasse Button in deinem Layout - mehr nicht.

Du musst vom C Denken weg, hier werden keine Pointer allociiert - das macht schon das System.
Einfach aus einem Layout zuweisen (FindViewbyID) oder ganz später mal sowas hier
Button test = new Button (this) (ohne Layout)


Ich habe jetzt kein if und switch case mehr im Programm, aber für die Zukunft, wenn ich if/elseif/else mehrfach kombiniere, ist dann switch case nicht besser? Aber switch case hat bei mir ja nicht geklappt. Die Fehlermeldungen habe ich ja gelesen, wußte aber nicht die zu deuten.
Das hast du falsch verstanden:
Natürlich ist nachwievor switch /case / else etc zu verwenden,
aber NICHT auf eine id eines Layouts , welches der Klasse Button lediglich einen Nummer vergibt und nicht verarbeitet werden kann , da es nur eine ID ohne speziellen Datentyp (z.b Byte, Integer, Float etc )ist.
(Damit weis Switch/Case nix anzufangen)

Aufgrund deiner Nachfragen, würde ich empfehlen, sich mal ein wenig in die OOP Programmierung einzuarbeiten.
Indbesondere unter JAVA : Inhaltsverzeichnis

Da fehlt es Dir noch an Grundlagen
 
Zuletzt bearbeitet:
Status
Dieses Thema wurde gelöst! Zur Lösung springen…

Ähnliche Themen

K
Antworten
3
Aufrufe
353
mezzothunder
mezzothunder
Manny87
  • Manny87
Antworten
11
Aufrufe
409
swa00
swa00
E
Antworten
25
Aufrufe
1.641
evgkop
E
Zurück
Oben Unten