【问题标题】:How to navigate from one screen to another screen如何从一个屏幕导航到另一个屏幕
【发布时间】:2010-11-09 06:41:03
【问题描述】:

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

【问题讨论】:

    标签: java android android-activity


    【解决方案1】:

    最琐碎的情况(从活动中调用):

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

    更多详情:http://developer.android.com/guide/topics/fundamentals.html

    【讨论】:

      【解决方案2】:
      OnClickListener onClickListener = new OnClickListener() {
          @Override
          public void onClick(View v) {
              startActivity(new Intent(action));
          }
      };
      
      Button button = (Button) findViewById(id);
      button.setOnClickListener(onClickListener);
      

      【讨论】:

      • 那是组件的id。
      【解决方案3】:
      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

      【讨论】:

      • 等等,这还能编译吗?
      【解决方案4】:
      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));
      
          }
      });
      

      【讨论】:

        【解决方案5】:
        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 -- 这是您要移动的下一个 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() 内的代码。

          【讨论】:

            【解决方案7】:
            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));
            
                        }
                    });
            

            【讨论】:

              【解决方案8】:

              使用下面的代码..我希望这会对你有所帮助。

              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。

              【讨论】:

                【解决方案9】:
                startActivity(new Intent(this,newActivity.class));
                

                【讨论】:

                  【解决方案10】:

                  从一项活动切换到另一项活动非常简单,但对于新活动来说却很棘手。 您的下一个班级必须在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);
                      }
                  

                  【讨论】:

                    【解决方案11】:
                    Intent intentobj=new Intent(FromActivity.this,ToActivity.class);
                    startActivity(intentobj);
                    

                    或者你可以简单地使用

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

                    【讨论】:

                      【解决方案12】:

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

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

                      如果你在一个片段中

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

                      【讨论】:

                        【解决方案13】:

                        您可以使用以下代码 sn-ps 导航到下一个屏幕:

                        科特林

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

                        Java

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

                        这是一个参考:Android Developers - Starting another activity

                        【讨论】:

                          【解决方案14】:

                          在你的方法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.*
                          

                          【讨论】:

                            【解决方案15】:

                            试试这个代码:

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

                            【讨论】:

                              【解决方案16】:
                              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);
                                          }
                                      });
                              

                              【讨论】:

                              • 欢迎来到 Stack Overflow。请edit您的答案解释此代码的作用以及它如何改进这个 11 岁问题的许多现有答案,以便它对其他有类似问题的用户有用。在 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它是如何解决问题的。
                              【解决方案17】:

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

                              然后转到 java 代码并创建类 opennewactivity,您可以在 xml 代码的“opennewactivity”中将其设为我的 clciking alt+Enter。就这样写

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

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

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

                              【讨论】:

                                【解决方案18】:
                                 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);
                                    
                                }
                                

                                【讨论】:

                                  猜你喜欢
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 2022-01-22
                                  • 2020-07-27
                                  • 1970-01-01
                                  • 2019-10-20
                                  • 1970-01-01
                                  • 2014-12-07
                                  相关资源
                                  最近更新 更多