如何在android应用程序中点击按钮打开第二个活动
我正在学习构建android应用程序,我需要一些具体的帮助。我似乎不知道哪些模板代码需要修改,哪些是静态的 在布局文件夹中,我有我的活动_MAIN.XML,内容如下如何在android应用程序中点击按钮打开第二个活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我正在学习构建android应用程序,我需要一些具体的帮助。我似乎不知道哪些模板代码需要修改,哪些是静态的 在布局文件夹中,我有我的活动_MAIN.XML,内容如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="horizontal">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/main_buttons_photos" />
</LinearLayout>
然后是我的SendPhotos.java文件,它是
package com.example.assent.bc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class SendPhotos extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_photos);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_send_photos, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
我希望我的主要活动中的按钮可以链接到我的sendphotos活动,只需打开该活动,不要花哨,不要发送任何数据或任何东西
我知道在某个地方我需要我的
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
但是我不知道用什么来取代活动。课堂,或者我在哪里还需要什么。来自活动:你现在在哪里 到活动:你想去哪里
Intent i=新的Intent(MainActivity.this,SendPhotos.class);
星触觉(i)代码>
这两个活动都必须包含在清单文件中,否则它将找不到类文件并抛出强制关闭
编辑Mainactivity.java
crate button's object;
现在为click事件编写代码
Button btn = (button)findViewById(R.id.button1);
btn.LoginButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//put your intent code here
}
});
希望它对您有用。替换以下代码行:
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(this);
}
public void onClick(View v) {
if(v.getId==R.id.button1){
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
}
}
}
在清单文件中添加以下行:
<activity android:name="com.packagename.FromActivity"></activity>
<activity android:name="com.packagename.ToActivity"></activity>
试试这个
Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(getApplicationContext(),SendPhotos.class);
startActivity(i);
}
});
}
只需遵循这一步(我不是在写代码,只是因为你可能会复制和粘贴,无法学习)
首先,您需要声明布局中的按钮
通过在oncreate中查找其id(使用findviewById)来引用该按钮
按钮的setlistener(如setonclick listener)
最后一次处理单击事件(意味着使用您已经知道的意图启动新活动)
别忘了在清单文件中添加活动
顺便说一句,这很简单,我想建议你从简单的教程开始
网上购物对你来说会更好
祝Android好运您可以点击按钮进入所需活动。只要加上这一行
xml:
<Button
android:id="@+id/timer_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="timerApp"
android:text="Click To run Timer Activity" />
android:onClick=“sendMessage”
xml:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMessage"
android:text="@string/button" />
最重要的是:不要忘记在manifest.xml
<activity>
android:name=".ToActivity"
android:label="@string/app_name">
</activity>
android:name=“.ToActivity”
android:label=“@string/app_name”>
用这些代码替换MainActivity.class
public class MainActivity extends Activity {
Button b1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new View.onClickListener()
{
public void onClick(View v)
{
Intent i=new Intent(getApplicationContext(),SendPhotos.class);
startActivity(i);
}
}
)
}
将这些代码添加到您的AndroidManifest.xml
中,在
之后和
之前
完整noob的完整noob的答案是:
MainActivity
是第一个活动的名称。
MainActivity2
是第二个活动的名称。
button1
是MainActivity
活动的xml按钮ID。这总是有效的,任何一个都可以:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
startActivity(new Intent("com.tobidae.Activity1"));
}
//** OR you can just use the one down here instead, both work either way
@Override
public void onClick (View v){
Intent i = new Intent(getApplicationContext(), ChemistryActivity.class);
startActivity(i);
}
}
}
如果您有两个按钮,并且对按钮具有相同的id调用,请单击以下事件:
Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1= (Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,target.class);
startActivity(intent);
}
});
btn2=(Button) findViewById(R.id.button1);//Have same id call previous button---> button1
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
当您单击按钮1
时,按钮2
将起作用,您无法打开第二个活动
<Button
android:id="@+id/btnSignIn"
android:layout_width="250dp"
android:layout_height="40dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:background="@drawable/circal"
android:text="Sign in"
android:textColor="@color/white"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/etPasswordLogin" />
}将以下代码添加到activity_main.xml文件中:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="buttonClick"
android:text="@string/button" />
您可以通过单击按钮移动到所需的活动。只需添加
android:onClick=“timerApp”这行
xml:
<Button
android:id="@+id/timer_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="timerApp"
android:text="Click To run Timer Activity" />
或者在onCreate()方法中添加以下代码
Button btn =findViewById(R.id.timer_app);//Don't need to type casting in android studio 3
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TimerActivity.class);
startActivity(intent);
}
});
ToActivity.class的可能重复项是您的第二个活动名称可以是youIntent类的最佳源没有任何接受两个类作为参数的构造函数!。我应该怎么做?这是在布局中还是在.java中?好的,您可以将此代码放在main activity.java文件中的按钮单击事件中,但放在哪里?如果我试着用.java来放置它,我会发现到处都是错误eclipse@HenryAspden导入onclocklistener和Button。@HenryAspden在onCreate和找到您的id后放置此代码。@HenryAspden我已经编辑了我的代码,请尝试此操作。我把这段代码放在onCreate中,试着这样做。只是为了帮助别人。。。“按钮名称”指的是ID吗?确实是。已更正以反映您的建议。您必须在活动标记中添加
,这对我不起作用。视图
、意图
和活动名称以红色显示。我需要导入任何内容以查看吗?@SrujanBarai是的,都导入android.View.View;并导入android.content.Intent;这对我来说很好。但是,他不需要按钮上的setOnClickListener()吗?@Vaggelismanousak不需要,因为它已经存在于xmlandroid:onClick=“sendMessage”
中。您输入了一个拼写错误,在文件名前加了一个问号,以防出错
<Button
android:id="@+id/btnSignIn"
android:layout_width="250dp"
android:layout_height="40dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:background="@drawable/circal"
android:text="Sign in"
android:textColor="@color/white"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/etPasswordLogin" />
Button signIn= (Button) findViewById(R.id.btnSignIn);
signIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(SignInPage.this,MainActivity.class));
}
});
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="buttonClick"
android:text="@string/button" />
public void buttonClick(View view){
Intent i = new Intent(getApplicationContext()SendPhotos.class);
startActivity(i);
}
xml:
<Button
android:id="@+id/timer_app"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="timerApp"
android:text="Click To run Timer Activity" />
public void timerApp(View view){
Intent intent= new Intent(MainActivity.this,TimerActivity.class);
startActivity(intent);
}
Button btn =findViewById(R.id.timer_app);//Don't need to type casting in android studio 3
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TimerActivity.class);
startActivity(intent);
}
});