2016-06-11 8 views
0

Ich bin neu in Android Studio, tue aber mein Bestes, um es zu lernen. Dies ist der Fall, den ich mir ausgedacht habe, und kann leider keine Antwort finden, obwohl es Grundlagen zu sein scheint.Schaltflächen zu Aktivitäten

Meine app beginnt mit 3 buttons (Workouts, Results, Info)

F.e Wenn ich auf „TRAINING“ klicke ich auf die Aktivität erhalten möchten, die ich WorkoutsActivity.java genannt, die 12 buttons hat.

Wenn ich auf „ERGEBNISSE“ klicken Ich möchte auf die Aktivität erhalten ActivityResults.java etc ...

  • Was ist der Code diese verschiedenen 3-Tasten verschiedene 3 Aktivitäten zu verknüpfen?
  • Muss ich 12 neue Aktivitäten für Schaltflächen in WorkoutsActivity.java erstellen? (Ist das wie Android funktioniert?)

Ich schätze Ihre Hilfe sehr. Vielen Dank.

+1

Dies könnte Ihnen helfen https://developer.android.com/training/basics/activity-lifecycle/index.html –

Antwort

0

Sie können

myButton.setOnClickListener(new OnClickListener... 

mit dem setOnClickListener Methode auf eine Schaltfläche klicken Ereignis reagieren Sie wird die onClick-Handler dann automatisch generieren.

Und verwenden Sie Absicht, um eine neue Aktivität zu starten.

Intent i = new Intent(from.this, to.class); 

startActivity(i); 

Natürlich müssen Sie von und - zu Aktivität Namen

+1

Wow halten auf Champ ... Wie ich schon sagte, ich fange gerade mit Android Studio und Java in Allgemeines. Dein Kommentar macht Sinn und ich schätze das sehr. Könnten Sie von "public class ..." ausgehen? Es klingt vielleicht albern, aber ich suche hier nach dem ganzen Code. – Karolis

+0

Postleitzahl erhalten Code – SQLiteNoob

1

Ok, so sind hier ändern einige Konzepte, die Sie müssen verstehen, bevor ich den Quellcode veröffentlichen: Layouts, Ansichten, Aktivitäten, Intents und Ereignisse.

Ansichten sind UI-Elemente wie Texte, Bilder, Buttons, Fortschrittsbalken, Bewertung Bars, etc.

Layouts sind unsichtbar UI-Elemente, die Ansichten in einer definierten Reihenfolge wie eine Zeile zeigt, eine Spalte oder einem Position relativ zu anderen Ansichten (toRightOf, toLeftOf, etc.) Sie werden auch Container genannt.

Aktivitäten sind wie eine 'Seite', die eine einzelne Aufgabe behandeln. Es enthält Ansichten und Layouts (und noch mehr) und einen Kontext.

Intents sind eine Art Brücke, um zu einer Aktivität von einem anderen zu gehen. Es gibt eine Menge Dinge über sie zu lernen, aber im Grunde wie eine Brücke zu denken.

Schließlich sind Ereignisse, die Art und Weise der Benutzer mit Blick interagiert: Klicks, berührt, Drag & Drop, ... Sie enthält Hörer und Handler wie OnClickListener und OnClick. Offensichtlich hört der erste zu und der zweite das Ereignis.


package com.learnandroid.myapplication; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 

    Button myButton; 

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

     myButton = (Button) findViewById(R.id.myButton); 

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

       Intent i = new Intent(MainActivity.this, SecondActivity.class); 
       startActivity(i); 

      } 
     }); 
    } 
} 

MainActivity.java

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.learnandroid.myapplication.MainActivity"> 

    <Button 
     android:id="@+id/myButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="My Button" /> 

</RelativeLayout> 

activity_main.xml

Vergessen Sie nicht, jede Aktivität in Ihrem Manifest zu erklären:

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

AndroidManifest.xml

+0

Sie mein Gebäude "android mindset" just in Sekunden - das ist so hilfreich ist. Ich hoffe, ich werde in der Lage sein, diesen Quellcode zu bekommen, um mehr über das OnClickListener-Event zu erfahren und damit herumzuspielen. – Karolis

+0

ich fügen Sie einfach den Quellcode –

+0

Ok. Sieht gut aus, aber ich sehe, dass dies der Quellcode für eine Schaltfläche ist, um zu einer anderen Aktivität zu wechseln. Wie sieht der Quellcode aus, wenn ich 3 Buttons habe, wie ich es in meinem Fall beschrieben habe? – Karolis

0

Hier ist der Pseudo-Code, den Sie folgen müssen:

Class 

    Button (3 times) 

    onCreate 

      Inflate buttons (3 times) 

      Click events (3 times) 

    End of onCreate 

End of class 

Herie das Ergebnis ist dieser Pseudo-Code geben soll:

package com.learnandroid.myapplication; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 

    Button myButton; 
    Button myButton2; 
    Button myButton3; 

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

     myButton = (Button) findViewById(R.id.myButton); 
     myButton2 = (Button) findViewById(R.id.myButton2); 
     myButton3 = (Button) findViewById(R.id.myButton3); 

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

       Intent i = new Intent(MainActivity.this, SecondActivity.class); 
       startActivity(i); 

      } 
     }); 

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

       Intent i = new Intent(MainActivity.this, ThirdActivity.class); 
       startActivity(i); 

      } 
     }); 

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

       Intent i = new Intent(MainActivity.this, FourthActivity.class); 
       startActivity(i); 

      } 
     }); 
    } 
} 

Und in die xML-Datei:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.learnandroid.myapplication.MainActivity"> 

    <Button 
     android:id="@+id/myButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="My Button" /> 

    <Button 
     android:id="@+id/myButton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="My Button 2" /> 

    <Button 
     android:id="@+id/myButton3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="My Button 3" /> 

</RelativeLayout> 

Vergessen Sie nicht, Ihre Aktivitäten im Manifest zu erklären:

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

zweite, dritte und vierte sind tatsächlich leer.

Sie können das Attribut layout_weight verwenden, wenn Sie Ihre Tasten benötigen, um die 1/3 Bildschirmgröße zu erreichen.

+0

Kann es nicht arbeiten ... – Karolis

+0

Wie gesagt, bevor ich mehr Zeit haben, wird die Antwort morgen zu stellen. Ich werde dich selbst versuchen lassen. Lesen Sie unsere Kommentare wieder und werden sehen, zusammen morgen :) –

+0

heute Aufwachte gespannt auf die Lösung, um zu sehen, aber immer noch warten ... :) – Karolis

Verwandte Themen