在Android中调用另一个Activity

时间:2011-03-01 09:24:26

标签: android

如何从一个(当前)活动中调用另一个活动?

同样地,我想调用一个包含当前活动对话框消息框的活动。

11 个答案:

答案 0 :(得分:52)

第一个问题:

使用Intent调用另一个Activity。在Manifest中,您应该添加

<activity android:name="ListViewImage"></activity>
<activity android:name="com.company.listview.ListViewImage">
</activity>

在您当前的活动中,

btListe = (ImageButton)findViewById(R.id.Button_Liste);
    btListe.setOnClickListener(new OnClickListener()
    {    public void onClick(View v)
        {
            intent = new Intent(main.this, ListViewImage.class);
            startActivity(intent);
            finish();
        }
    });

第二个问题:

sendButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            String valueString = editValue.getText().toString();
            long value;
            if (valueString != null) {
                value = Long.parseLong(valueString);
            }
            else {
                value = 0;
            }

            Bundle sendBundle = new Bundle();
            sendBundle.putLong("value", value);

            Intent i = new Intent(Activity1.this, Activity2.class);
            i.putExtras(sendBundle);
            startActivity(i);

            finish();
        }
    });

并在Activity2中:

 Bundle receiveBundle = this.getIntent().getExtras();
    final long receiveValue = receiveBundle.getLong("value");
    receiveValueEdit.setText(String.valueOf(receiveValue));
    callReceiverButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(Activity2.this, Receiver.class);
            i.putExtra("new value", receiveValue - 10);
        }
    });

答案 1 :(得分:10)

检查以下代码以从另一个代码调用一个活动。

Intent intent = new Intent(CurrentActivity.this, OtherActivity.class);
CurrentActivity.this.startActivity(intent);

答案 2 :(得分:5)

我在示例应用程序中使用以下代码来启动新活动。

Button next = (Button) findViewById(R.id.TEST);
next.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent myIntent = new Intent( view.getContext(), MyActivity.class);
        startActivityForResult(myIntent, 0);
    }
});

答案 3 :(得分:4)

由于我们不知道您的活动类的名称是什么,让我们调用您当前的活动Activity1和您想要打开的活动 - 活动2(这些是类的名称)

首先,您需要定义将发送到Activity2的意图:

Intent launchActivity2 = new Intent(Activity1.this, Activity2.class);

然后,您可以通过运行以下方式启动活动:
    startActivity(launchActivity2);

答案 4 :(得分:2)

将以下内容添加到您的开启按钮点击事件:

Intent intent = new Intent(First.this, Second.class);
startActivity(intent);
finish();

答案 5 :(得分:0)

可以使用名为Intents的android主要构建块之一和属于您的Activity类的方法之一public void startActivity (Intent intent)来完成此任务。

intent是要执行的操作的抽象描述。它可以与startActivity一起用于启动Activity,broadcastIntent用于将其发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)用于与后台服务进行通信。

Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。

参阅官方文档 - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - 用于启动新活动。

假设你有两个Activity类,按一下按钮OnClickListener()你想从一个Activity移动到另一个Activity然后 -

  1. PresentActivity - 这是您想要进行第二项活动的当前活动。

  2. NextActivity - 这是您要移动的下一个活动(可能包含您正在说的对话框)。

  3. 所以Intent就像这样

    Intent(PresentActivity.this, NextActivity.class)
    

    最后这将是完整的代码

      public class PresentActivity extends Activity {
            protected void onCreate(Bundle icicle) {
                super.onCreate(icicle);
    
                setContentView(R.layout.content_layout_id);
    
                final Button button = (Button) findViewById(R.id.button_id);
                button.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        // Perform action on click   
    
                        Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);
    
                        // currentContext.startActivity(activityChangeIntent);
    
                        PresentActivity.this.startActivity(activityChangeIntent);
                    }
                });
            }
        }
    

    这个例子与按钮点击有关,您可以在任何想要在您的活动之间切换的地方按钮点击OnClickListener()内的任何地方使用代码。

答案 6 :(得分:0)

将它放在MainActivity1.java的onCreate()方法中

Button btnEins = (Button) findViewById(R.id.save);
        btnEins.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                Intent intencion = new Intent(v.getContext(),MainActivity2.class );     
                startActivity(intencion);
            }

        });

答案 7 :(得分:0)

我已经实现了这种方式并且它有效。它比报告的所有内容容易得多。

我们有两项活动:一项是,另一项是辅助

在我们想要结束活动的辅助活动中,定义以下变量:

public static Activity ACTIVIDAD;

然后是以下方法:

public static void enlaceActividadPrincipal(Activity actividad) 
{
    tuActividad.ACTIVIDAD=actividad;
}

然后,在onCreate方法的主要活动中,您拨打电话:

    actividadSecundaria.enlaceActividadPrincipal(this);

现在,你掌握了控制权。现在,您可以从辅助活动中完成活动。完成调用函数,如下所示:

ACTIVIDAD.finish();

答案 8 :(得分:0)

以下代码演示了如何通过意图启动其他活动。

以意图连接到指定的类

启动活动
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);

由其他Android活动启动的活动称为子活动。这种措辞可以更容易地描述意味着哪种活动。

答案 9 :(得分:0)

检查以下代码以打开新的活动。

Intent f = new Intent(MainActivity.this,SecondActivity.class);

startActivity(F);

答案 10 :(得分:0)

将一种活动称为另一种活动的最简单方法是

startActivity( new Intent( getApplicationContext(), YourActivity.class ) );