【发布时间】:2010-11-09 06:41:03
【问题描述】:
如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,如果我单击必须移动到另一个活动屏幕的按钮,我将拥有一个按钮。
【问题讨论】:
标签: java android android-activity
如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,如果我单击必须移动到另一个活动屏幕的按钮,我将拥有一个按钮。
【问题讨论】:
标签: java android android-activity
最琐碎的情况(从活动中调用):
startActivity(new Intent(this, ActivityToLaunch.class));
更多详情:http://developer.android.com/guide/topics/fundamentals.html
【讨论】:
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(action));
}
};
Button button = (Button) findViewById(id);
button.setOnClickListener(onClickListener);
【讨论】:
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
【讨论】:
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));
}
});
【讨论】:
public void onClick(View v)
{
Intent myintent = new Intent(currentclass.this, nextactivity.class);
startActivity(myintent);
}
【讨论】:
可以使用名为 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 移动到另一个然后 --
PresentActivity -- 这是您当前的活动,您想从中进行第二个活动。
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() 内的代码。
【讨论】:
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));
}
});
【讨论】:
使用下面的代码..我希望这会对你有所帮助。
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。
【讨论】:
startActivity(new Intent(this,newActivity.class));
【讨论】:
从一项活动切换到另一项活动非常简单,但对于新活动来说却很棘手。
您的下一个班级必须在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);
}
【讨论】:
Intent intentobj=new Intent(FromActivity.this,ToActivity.class);
startActivity(intentobj);
或者你可以简单地使用
startActivity(new Intent(FromActivity.this,ToActivity.class));
【讨论】:
对于 Kotlin(如果您在活动中)
buttonToClick.setOnClickListener{ startActivity(this,YourDestinationActivity::class.java)
}
如果你在一个片段中
buttonToClick.setOnClickListener{
startActivity(requireActivity, YourDestinationActivity::class.java)
}
【讨论】:
您可以使用以下代码 sn-ps 导航到下一个屏幕:
科特林
startActivity(Intent(this, LoginActivity::class.java))
Java
startActivity(new Intent(this, LoginActivity.class))
【讨论】:
在你的方法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.*
【讨论】:
试试这个代码:
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);
}
});
【讨论】:
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);
}
});
【讨论】:
只需转到 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();
【讨论】:
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);
}
【讨论】: