如何在Android应用程序中点击button打开第二个活动

我正在学习构buildAndroid应用程序,我需要一些特定的帮助。 我似乎无法摆脱我需要改变哪些模板代码位,哪些位是静态的。

LAYOUT文件夹中,我有我的ACTIVITY_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/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> 

接下来,我有第二个活动ACTIVITY_SEND_PHOTOS.XML

  <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" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".SendPhotos" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="@string/title_activity_send_photos" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout> 

然后我有我的MainActivity.java (这是.class?)它读取包com.example.assent.bc;

  import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } /** Called when the user clicks the Send button */ public void sendMessage(View view) { // Do something in response to button } } 

然后是我的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); } } 

我希望我的主要活动中的button链接到我的sendphotos活动,只需打开该活动,没有任何幻想,不发送任何数据或任何东西。

我知道我需要我的地方

  Intent i = new Intent(FromActivity.this, ToActivity.class); startActivity(i); 

但我不知道如何replaceToActivity.class或者我需要什么地方。

您可以移动到button单击所需的活动。 只需添加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" /> 

在你的主要活动中只需添加这个方法:

 public void sendMessage(View view) { Intent intent = new Intent(FromActivity.this, ToActivity.class); startActivity(intent); } 

最重要的是:不要忘记在manifest.xml定义你的活动

  <activity android:name=".ToActivity" android:label="@string/app_name"> </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); } }); } 

从活动:你在哪里?

活动:你想去哪里?

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

这两个活动必须包含在清单文件中,否则将不会find类文件并抛出强制closures。

编辑你的Mainactivity.java

 crate button's object; 

现在编写单击事件的代码。

  Button btn = (button)findViewById(R.id.button1); btn.LoginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //put your intent code here } }); 

希望它能为你工作。

 Button btn = (Button) findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent myIntent = new Intent(MainActivity.this, MainActivity2.class); MainActivity.this.startActivity(myIntent); } }); 

完整noob的完整noob的答案: MainActivity是第一个活动的名称。 MainActivity2是第二个活动的名称。 button1MainActivity Activity的xmlbutton的ID。

只要按照这一步(我不写代码只是Bcoz你可以做复制和粘贴,不能学习)..

  1. 首先你需要声明一个你在布局中使用的button

  2. 通过在oncreate中find它的id(使用findviewById)来引用该button

  3. setlistener的button(如setonclick监听器)

  4. 最后处理点击事件(意味着已经使用意图开始新的活动)

  5. 不要忘记在清单文件中添加活动

顺便说一句,这只是简单的,我想build议你,从网上提供的简单教程开始将是更好的..

Android的最佳运气

replace下面的行代码:

 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> 

用这些代码replace你的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); } } ) } 

</activity>和之前</application>之后, 将这些代码添加到 AndroidManifest.xml

 <activity android:name=".SendPhotos"></activity> 

这总是有效的,要么一个应该就好了:

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

将下面的代码添加到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" /> 

只需将下面的方法添加到MainActivity.java文件中:

 public void buttonClick(View view){ Intent i = new Intent(getApplicationContext()SendPhotos.class); startActivity(i); } 

如果你有两个button,并有相同的ID调用你的button点击这样的事件:

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

当你点击button1button2将起作用,你不能打开你的第二个活动。

  <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" /> 

在JAVA代码

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

}