2016-06-11 75 views
0

我是新來的Android Studio,但盡我所能學習它。 這是我想到的情況,不幸的是找不到答案,即使它看起來很基礎。按鈕到活動

我的應用程序3 buttons (Workouts, Results, Info)

F.e開始當我點擊「試訓」我想給我把它叫做WorkoutsActivity.java具有12 buttons活動。

當我點擊「結果」我想對這個活動ActivityResults.java等等

  • 什麼是這些不同的3個按鈕鏈接到不同的3個活動的代碼?
  • 我是否需要爲WorkoutsActivity.java中的按鈕創建12個新活動? (是Android的工作原理?)

我非常感謝您的幫助。謝謝。

+1

這可以幫助你https://developer.android.com/training/basics/activity-lifecycle/index.html –

回答

0

你可以到一個按鈕單擊事件反應與setOnClickListener方法

myButton.setOnClickListener(new OnClickListener... 

然後它就會自動生成的onClick處理程序。

並使用它的意圖開始一項新的活動。

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

startActivity(i); 

顯然,你需要從和改變的活動名稱

+1

哇舉行的冠軍......正如我所說的,我剛開始與Android工作室和Java一般。您的評論很有意義,我非常感謝。你可以從「公共課」開始......這可能聽起來很愚蠢,但我在這裏尋找整個代碼。你建立我的「機器人心態」只是在幾秒鐘 – Karolis

+0

郵編拿到代碼 – SQLiteNoob

1

好了,這裏有您需要了解之前,我發佈的源代碼幾個概念:佈局意見,活動,意圖事件

視圖是可見的UI元素如文本,圖像,按鈕,進度條,評級酒吧等

佈局是誰顯示視圖中所定義的順序,如行,列或不可見的UI元素相對於其他視圖的位置(toRightOf,toLeftOf等)它們也被稱爲容器。

活動就像處理單個任務的'頁面'。它包含視圖和佈局(甚至更多)和上下文。

意圖是一種橋樑,去從另一個活動。有很多事情要了解他們,但基本上認爲像一座橋。

最後,事件是用戶與意見的交互方式:點擊,觸摸,拖拽,......他們包含監聽器和處理器,如OnClickListener的OnClick。很明顯,第一個人聽,第二個人處理事件。


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中

不要忘記申報您的清單每一個活動:

<?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

- 即是如此有幫助的。我希望我能夠獲得該源代碼,以更好地瞭解OnClickListener事件併發揮它的作用。 – Karolis

+0

我只是加了源碼 –

+0

好的。看起來不錯,但我看到這是一個按鈕去其他活動的源代碼。在我描述的情況下,如果我有3個按鈕,源代碼的外觀如何? – Karolis

0

以下是你需要遵循僞代碼:

Class 

    Button (3 times) 

    onCreate 

      Inflate buttons (3 times) 

      Click events (3 times) 

    End of onCreate 

End of class 

Herie是結果這個僞代碼應該給:

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); 

      } 
     }); 
    } 
} 

而且在xml文件:

<?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> 

不要忘記在清單申報的活動:

<?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> 

第二,第三和第四實際上是空的。

如果您需要按鈕來匹配1/3屏幕大小,則可以使用layout_weight屬性。

+0

不能讓它工作... – Karolis

+0

正如我以前說過,我將有更多的時間來發布答案的明天。我會讓你自己嘗試。再次閱讀我們的意見,並會一起看明天:) –

+0

今天醒來後高興地看到了解決方案,但仍在等待... :) – Karolis