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

时间:2009-07-09 05:55:23

标签: java android android-activity

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

17 个答案:

答案 0 :(得分:17)

最微不足道的案例(从活动中调用):

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

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

答案 1 :(得分:16)

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

答案 2 :(得分:12)

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

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

答案 3 :(得分:10)

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

    }
});

答案 4 :(得分:7)

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

答案 5 :(得分:4)

可以使用名为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 :(得分: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));

            }
        });

答案 7 :(得分: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。

答案 8 :(得分:1)

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

答案 9 :(得分: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);
    }

答案 10 :(得分:1)

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

或者您可以简单地使用

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

答案 11 :(得分:1)

尝试以下代码:

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

答案 12 :(得分:0)

您可以使用以下代码段导航至下一个屏幕:

科特林

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

Java

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

这里是参考:Android Developers - Starting another activity

答案 13 :(得分: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.*

答案 14 :(得分: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);
            }
        });

答案 15 :(得分:0)

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

然后转到Java代码并创建类opennewactivity,您可以将其设为我喜欢的Alt +输入xml代码的“ opennewactivity”。在那写

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

如果您不希望用户再次回到第一个活动,则只需编写

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

答案 16 :(得分: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);
    
}