按钮到活动

按钮到活动

问题描述:

我是新来的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 –

你可以到一个按钮单击事件反应与setOnClickListener方法

myButton.setOnClickListener(new OnClickListener... 

然后它就会自动生成的onClick处理程序。

并使用它的意图开始一项新的活动。

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

startActivity(i); 

显然,你需要从和改变的活动名称

+1

哇举行的冠军......正如我所说的,我刚开始与Android工作室和Java一般。您的评论很有意义,我非常感谢。你可以从“公共课”开始......这可能听起来很愚蠢,但我在这里寻找整个代码。你建立我的“机器人心态”只是在几秒钟 – Karolis

+0

邮编拿到代码 – SQLiteNoob

好了,这里有您需要了解之前,我发布的源代码几个概念:布局意见,活动,意图事件

视图是可见的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

以下是你需要遵循伪代码:

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