如何在Android应用程序中单击按钮打开第二个活动

Hen*_*den 87 android android-intent android-activity

我正在学习构建Android应用程序,我需要一些特定的帮助.我似乎无法理解我需要更改哪些模板代码,以及哪些位是静态的.

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>
Run Code Online (Sandbox Code Playgroud)

接下来,我有我的第二个活动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>
Run Code Online (Sandbox Code Playgroud)

然后我有我的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
 }
 }
Run Code Online (Sandbox Code Playgroud)

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

 }
Run Code Online (Sandbox Code Playgroud)

我希望我的主要活动中的按钮链接到我的sendphotos活动,只是打开那个活动,没有什么花哨,没有发送任何数据或任何东西.

我知道我需要的地方

 Intent i = new Intent(FromActivity.this, ToActivity.class);
 startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但是我不知道用什么替代ToActivity.class或者我需要什么.

Jun*_*ned 142

您可以在按钮单击时移动到所需的活动.只需添加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" />
Run Code Online (Sandbox Code Playgroud)

在您的主要活动中,只需添加此方法:

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

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

 <activity
      android:name=".ToActivity"
      android:label="@string/app_name">          
 </activity>
Run Code Online (Sandbox Code Playgroud)

  • 您必须在activity标记中添加`>` (2认同)
  • 这不适合我.`View`,`Intent`和活动名称为红色.我是否需要为View导入任何内容? (2认同)

J.D*_*.D. 29

试试这个

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

 }
Run Code Online (Sandbox Code Playgroud)


Chi*_*iya 10

来自活动:您目前在哪里?

活动:你想去哪里?

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

两个Activity都必须包含在清单文件中,否则它将找不到类文件并抛出Force关闭.

编辑Mainactivity.java

crate button's object;
Run Code Online (Sandbox Code Playgroud)

现在编写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
                }
   });
Run Code Online (Sandbox Code Playgroud)

希望它能为你效劳.


小智 10

Button btn = (Button) findViewById(R.id.button1);

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent myIntent = new Intent(MainActivity.this, MainActivity2.class);
        MainActivity.this.startActivity(myIntent);       
    }  
});
Run Code Online (Sandbox Code Playgroud)

来自完整菜鸟的完整菜鸟的答案: MainActivity是第一个活动的名称. MainActivity2是第二个活动的名称. button1MainActivity活动中xml按钮的ID .


Kal*_*ani 5

只需遵循此步骤(我不是在编写代码,只是 Bcoz,您可能会复制和粘贴而无法学习)..

  1. 首先,您需要声明一个布局中的按钮

  2. 通过在 oncreate 中查找其 id(使用 findviewById)来引用该按钮

  3. 按钮的设置侦听器(如 setonclick 侦听器)

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

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

顺便说一句,这很简单,我想建议您从网上提供的简单教程开始对您来说会更好。

祝安卓好运