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

问题描述 投票:0回答:19

如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,我有一个按钮,如果我单击它必须移动到另一个活动屏幕的按钮。

java android android-activity
19个回答
22
投票

最琐碎的案例(从活动中调用):

startActivity(new Intent(this, ActivityToLaunch.class));

更多细节在这里:http://developer.android.com/guide/topics/fundamentals.html


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

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

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

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

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


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

6
投票

此任务可以使用名为 Intents 的 android 主要构建块之一和属于您的 Activity 类的方法之一

public void startActivity (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 移动到另一个 -

  1. PresentActivity -- 这是您当前的活动,您想从中进行第二个活动。

  2. NextActivity -- 这是您要移动的下一个活动。

所以 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 是来自您的 Button 的 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);
    }

1
投票

您可以使用这些代码片段导航到下一个屏幕:

科特林

startActivity(Intent(this, LoginActivity::class.java))

Java

startActivity(new Intent(this, LoginActivity.class))

这里有一个参考:Android开发者-开始另一个活动


1
投票
Intent intentobj=new Intent(FromActivity.this,ToActivity.class);
startActivity(intentobj);

或者你可以简单地使用

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

1
投票

对于 Kotlin(如果你在活动中)

    buttonToClick.setOnClickListener{     startActivity(this,YourDestinationActivity::class.java)
        }

如果你在碎片中

        buttonToClick.setOnClickListener{
            startActivity(requireActivity, YourDestinationActivity::class.java)
        }

0
投票

在你的方法中

fun onCreate(savedInstanceState: Bundle?)
添加这个。

your_btn_id.setOnClickListener{

            val intent = Intent(this, yourpagename::class.java)
            startActivity(intent)
        }

到现在还不行再检查这两个文件有没有添加,

import android.content.Intent
import kotlinx.android.synthetic.main.activity_otp.*

0
投票

试试这个代码:

 Button my_btn;
 my_btn = findViewById(R.id.submit_btn);
 my_btn.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
         setContentView(R.layout.activity_2);
     }
 });

0
投票
Button navigate;
navigate = findViewById(R.id.button);
navigate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(),"Navigate another Activity",Toast.LENGTH_LONG).show();
                Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                startActivity(intent);
            }
        });

0
投票

只需转到 XML 文件并在按钮 xml 中添加 Onclick = "opennewactivity"。

然后转到 java 代码并创建类 opennewactivity 你可以在 xml 代码的“opennewactivity”中按 alt+Enter 使其成为我的点击。在那写

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

如果你想让用户不再回到第一个活动,那么就写这个

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

0
投票
 Cartoon_card.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) 
        
        {
            newActivity();
            
        }
    });
    
}
public void newActivity()
{
    Intent selectClass= new Intent(getApplicationContext(), com.example.fyp.videoplayer.class);
    startActivity(selectClass);
    
}

-1
投票
binding.buttonID.setOnClickListener {
            val intent = Intent (this, classname::class.java)
            startActivity(intent)
        }
© www.soinside.com 2019 - 2024. All rights reserved.