我是Android Studio新手,但我会尽力学习它。 这是我提出的情况,不幸的是,即使看起来很基本,也无法找到答案。
我的应用以3 buttons (Workouts, Results, Info)
开头F.e当我点击" WORKOUTS"我想进入我称为WorkoutsActivity.java的Activity 12 buttons。
当我点击"结果"我想参加活动ActivityResults.java等...
非常感谢你的帮助。谢谢。
答案 0 :(得分: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中
不要忘记在Manifest中声明每项活动:
<?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
答案 1 :(得分:0)
您可以使用setOnClickListener方法
对按钮单击事件做出反应myButton.setOnClickListener(new OnClickListener...
然后它将自动生成onClick处理程序。
并使用其中的意图开始一项新活动。
Intent i = new Intent(from.this, to.class);
startActivity(i);
显然,您需要将从和更改为到活动名称
答案 2 :(得分: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>
不要忘记在Manifest中宣布您的活动:
<?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 属性。