Android - Programmierung - Zähler (Java)

2 Antworten

Um die Klicks pro Sekunde anzuzeigen, musst du nur die bisher vergangene Zeit speichern und mit Klick / Sekunden hast du die Klicks pro Sekunde. Bei 10 Klicks in 2 Sekunden hast du dann bspw. 5 Klicks/Sek. Die Anzeige der Klicks/Sek musst du halt in einem unabhängigen Thread ständig aktualisieren.

ah okey :)

hättest du mir ein codebeispiel? ich habe noch nicht seehr viel erfahrung mit java

0
@Spufi

Was willst du da für eine Beispiel? Bruchrechnung ist doch nicht wirklich schwer:

pastSeconds = (startTime - System.currentTimeMillis()) / 1000;
clicksPerSecond = Math.round(clickCount / pastSeconds);
1
@Babelfish

bin java beginner :D sollte nicht unbedingt mit android beginnen... :D aber ich mag die sprache und wäre zum beispiel wegen des fehlenden wissens nie auf diesen code gekommen

startTime - System.currentTimeMillis()

0
@Babelfish

bin java beginner :D sollte nicht unbedingt mit android beginnen... :D aber ich mag die sprache und wäre zum beispiel wegen des fehlenden wissens nie auf diesen code gekommen

startTime - System.currentTimeMillis()

0

Bevor du mit Thread.sleep anfängst, was dir hier auch nicht hilft, versuch es dir ein wenig leichter zu machen:

Du brauchst zunächst eine Lokale Variable, z.b. vom Typ Date.

Du hast einen OnClickListener - Beim Event onClick() vergleichst du zunächst das datum der lokalen Variable mit dem aktuellen Zeitwert.

In Schritt 2 aktualisierst du die Lokale Variable mit dem aktuellen Zeitwert.

Durch das vergleichen (z.b. über: date1.getTime() - date2.getTime()) erhälst du die Zeitdifferenz der beiden Clicks in Millisekunden, diese wiederum kannst auf eine Sekunde Hochrechnen um die Anzahl Clicks Pro Sekunde zu erhalten.

C# Variable in anderer Klasse verwenden

Guten Abend,

wie kann ich eine Variable aus einer Klasse in einer anderen Klasse verwenden? Hier mein Quellcode:

 public class Spielfeld
{
    int weite;
    int höhe;

    public void abmessungSpielfeld(int iweite, int ihöhe)
    {
        weite = iweite / 20;
        höhe = ihöhe / 20;
    }
}

public class Snake
{   
    public void neuerPunkt()
    {
        Random r = new Random();
        int zahl1 = r.Next(0, weite);
        int zahl2 = r.Next(0, höhe)
    }
}

Danke schonmal

...zur Frage

Android Programmierung Widgets nebeneinander - Größe soll gleich bleiben

Hey, bin neu in der Welt der Android-Programmierung und habe gleich eine Frage zum Layout erstellen.

Habe mir ein LinearLayout erzeugt und darin sollen die Widgets nebeneinander angezeigt werden. Das Ding ist nun, ich will das die 3 Buttons alle die gleiche Größe ( Breite ) haben, egal welche Auflösung das Smartphone/Tablet besitzt. ( Sollen die ganze Breite ausfüllen zusammen )

Quasi: width = fill_parent / 3

( Geht natürlich nicht )

Hoffe ihr versteht mich und könnt mir helfen.

( Habe an weight gedacht, nur hat das bei mir nicht funktioniert )

Mfg Termi

...zur Frage

Wie bringe ich Android Studio dazu, eine Importanweisung für die Klasse EditText zu erstellen?

...zur Frage

Wie sieht die Punktnotation in Java aus oder wie kann ich auf auf andere Klassen zugreifen?

Wie kann ich in der Klasse Telefon die Methoden aus der Klasse Telefonbuch verwenden ? Wenn ich es mit Punktnotation versuche wie z.B.

public void eintrag_hinzufuegen(String name)
{
    Telefonbuch.hinzufuegen(name);
}

, kommt die Fehlermeldung : non static method cannot be referenced from a static context

1)

import java.util.ArrayList;
public class Telefon
{
protected ArrayList <Telefonbuch> telefonbuch;
protected boolean eingeschaltet;
        
        public Telefon()
    {
        // initialise instance variables
        telefonbuch = new ArrayList <Telefonbuch>();
    }
    
    public void anrufen (String name)
    {
    }
    
    public void einschalten()
    {
        eingeschaltet = true;
    }
    
    public void telefonbuch_uebersicht()
    {
        
    }
    
    public void eintrag_hinzufuegen(String name)
    {
    }
    
    public void eintrag_entfernen(String name)
    {
    }
    
    public boolean eintrag_suchen(String name)
    {
    }
}

2)

import java.util.Arrays;

/**
 * Write a description of class Telefonbuch here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Telefonbuch
{
    // instance variables - replace the example below with your own
    private int anzahl_eintrag;
    private int kapazitaet;
    private String[] name_liste;
    protected boolean gefunden;

    /**
     * Constructor for objects of class Telefonbuch
     */
    public Telefonbuch()
    {
        // initialise instance variables
        String [] name_liste = new String[kapazitaet];
        gefunden = false;
    }
    
    public void set_kapazitaet(int x)
    {
        kapazitaet = x;
    }
    
    public void telefonbuch_uebersicht()
    {
        for(int i=0; i < name_liste.length; i++)
        {
        System.out.println(name_liste[i]);
        }
    }
    
    public void hinzufuegen(String name)
    {
        
    }
    
    public void entfernen(String name)
    {
    }
    
    public boolean suchen(String name)
    {
        for(int i=0; i < name_liste.length; i++)
        {
         if(name_liste[i].equals(name))
         {
         gefunden = true;
         }
         else
         {
         //Abbruch
         }
        }
        return gefunden;
    }
}

...zur Frage

Kann mir jemand die begriffe int, void, string,public usw erklären?

...zur Frage

Warum funktioniert der setOnClickListener() nicht?

Ich möchte, dass durch das RelativeLayout (id: account_test) eine neue Seite aufgerufen wird. Dazu verwende ich den FragmentManager. Im setOnCllickListener wird einfach ein wert zurückgegeben. Dieser wert wird in einer if-Verzweigung verglichen und wenn dies übereinstimmt, dann kommt der FragmentManager ins Spiel.

Java-Code:

public class Sidebar extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sidebar);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    //Initialising Components of layouts

    //Search


    //Settings
    ImageView account = (ImageView)(findViewById(R.id.account_image));
    ImageView accountImageActionSettings = (ImageView) findViewById(R.id.account_image);
    View aboutMeImageActionSettings = findViewById(R.id.about_me);
    View generalImageActionsettings = findViewById(R.id.general);
    RelativeLayout test = (RelativeLayout)findViewById(R.id.account_test);

    test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            id = "test";
        }
    });
    FragmentManager fragmentManager = getFragmentManager();


    if (id.equals("test") )
    {
        fragmentManager.beginTransaction().
                replace(R.id.content_frame, 
                        new Settings())
                .commit();
    }

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
        this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

} }

Android-Monitor: FATAL EXCEPTION: main Process: com.vincenzkruesmann.smartifact, PID: 10322 java.lang.RuntimeException: Unable to start activity ComponentInfo{ com.vincenzkruesmann.smartifact/com.vincenzkruesmann.smartifact.Sidebar}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setOnClickListener(android.view$OnClickListener)

...zur Frage

Was möchtest Du wissen?