如何从一个屏幕导航到另一个屏幕

45

如何从一个 Activity 屏幕导航到另一个 Activity 屏幕?在第一个屏幕上,我有一个按钮,如果我点击该按钮,它应该移动到另一个 Activity 屏幕。

18个回答

22

17
OnClickListener onClickListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(action));
    }
};

Button button = (Button) findViewById(id);
button.setOnClickListener(onClickListener);

那是组件的ID。 - Chiwai Chan

16
Button x.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) 
    {
        Intent i = new Intent(y.this, Activity.class);
        startActivity(i);                   
    }
});

这里我们为按钮x定义了一个监听器。操作系统将调用此方法并启动Intent i中引用的Activity。

以下是官方教程示例: http://developer.android.com/guide/tutorials/notepad/notepad-ex2.html


2
等等,这个代码能编译通过吗? - vidstige

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

btn.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {      

        startActivity(new Intent(TestActivity.this,second.class));

    }
});

9
public void onClick(View v) 
{
    Intent myintent = new Intent(currentclass.this, nextactivity.class);
    startActivity(myintent);                               
}

7

使用Android的一个主要构建块之一Intent和属于您的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 -- 这是您要转移到的下一个Activity。

因此,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()内部的代码。


4
final Context cont = this;
Button btnClickABC =(Button)findViewById(R.id.btnClickABC);
btnClickABC.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {                   
                startActivity(new Intent(cont, NextActivity.class));

            }
        });

3
使用以下代码,希望这能帮到你。
Button button = (Button)findViewById(R.id.xxx);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent=new Intent(CurrentActivity.this,NextActivity.class);
        startActivity(intent);
    }
});

xxx 是您的按钮 XML 中的 ID。


1
startActivity(new Intent(this,newActivity.class));

1

从一个活动切换到另一个活动非常简单,但对于新手来说可能有些棘手。 您的下一个类必须在AndroidManifest.xml中定义。这是测试类:

<activity
  android:name=".Tester"
  android:label="@string/title_activity_tester" >`enter code here`
</activity>


final Button button = (Button) findViewById(R.id.btnGo);// btnGo is id 
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent(CurrentClass.this, Tester.class);
        startActivity(i);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接