如何从一个(当前)活动中调用另一个活动?
同样地,我想调用一个包含当前活动对话框消息框的活动。
答案 0 :(得分:52)
第一个问题:
使用Intent调用另一个Activity。在Manifest中,您应该添加
<activity android:name="ListViewImage"></activity>
<activity android:name="com.company.listview.ListViewImage">
</activity>
在您当前的活动中,
btListe = (ImageButton)findViewById(R.id.Button_Liste);
btListe.setOnClickListener(new OnClickListener()
{ public void onClick(View v)
{
intent = new Intent(main.this, ListViewImage.class);
startActivity(intent);
finish();
}
});
第二个问题:
sendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String valueString = editValue.getText().toString();
long value;
if (valueString != null) {
value = Long.parseLong(valueString);
}
else {
value = 0;
}
Bundle sendBundle = new Bundle();
sendBundle.putLong("value", value);
Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtras(sendBundle);
startActivity(i);
finish();
}
});
并在Activity2中:
Bundle receiveBundle = this.getIntent().getExtras();
final long receiveValue = receiveBundle.getLong("value");
receiveValueEdit.setText(String.valueOf(receiveValue));
callReceiverButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(Activity2.this, Receiver.class);
i.putExtra("new value", receiveValue - 10);
}
});
答案 1 :(得分:10)
检查以下代码以从另一个代码调用一个活动。
Intent intent = new Intent(CurrentActivity.this, OtherActivity.class);
CurrentActivity.this.startActivity(intent);
答案 2 :(得分:5)
我在示例应用程序中使用以下代码来启动新活动。
Button next = (Button) findViewById(R.id.TEST);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent( view.getContext(), MyActivity.class);
startActivityForResult(myIntent, 0);
}
});
答案 3 :(得分:4)
由于我们不知道您的活动类的名称是什么,让我们调用您当前的活动Activity1和您想要打开的活动 - 活动2(这些是类的名称)
首先,您需要定义将发送到Activity2的意图:
Intent launchActivity2 = new Intent(Activity1.this, Activity2.class);
然后,您可以通过运行以下方式启动活动:
startActivity(launchActivity2);
答案 4 :(得分:2)
将以下内容添加到您的开启按钮点击事件:
Intent intent = new Intent(First.this, Second.class);
startActivity(intent);
finish();
答案 5 :(得分:0)
可以使用名为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然后 -
PresentActivity - 这是您想要进行第二项活动的当前活动。
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()
内的任何地方使用代码。
答案 6 :(得分:0)
将它放在MainActivity1.java的onCreate()方法中
Button btnEins = (Button) findViewById(R.id.save);
btnEins.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intencion = new Intent(v.getContext(),MainActivity2.class );
startActivity(intencion);
}
});
答案 7 :(得分:0)
我已经实现了这种方式并且它有效。它比报告的所有内容容易得多。
我们有两项活动:一项是主,另一项是辅助。
在我们想要结束主活动的辅助活动中,定义以下变量:
public static Activity ACTIVIDAD;
然后是以下方法:
public static void enlaceActividadPrincipal(Activity actividad)
{
tuActividad.ACTIVIDAD=actividad;
}
然后,在onCreate
方法的主要活动中,您拨打电话:
actividadSecundaria.enlaceActividadPrincipal(this);
现在,你掌握了控制权。现在,您可以从辅助活动中完成主活动。完成调用函数,如下所示:
ACTIVIDAD.finish();
答案 8 :(得分:0)
以下代码演示了如何通过意图启动其他活动。
以意图连接到指定的类
启动活动Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
由其他Android活动启动的活动称为子活动。这种措辞可以更容易地描述意味着哪种活动。
答案 9 :(得分:0)
检查以下代码以打开新的活动。
Intent f = new Intent(MainActivity.this,SecondActivity.class);
startActivity(F);
答案 10 :(得分:0)
将一种活动称为另一种活动的最简单方法是
startActivity( new Intent( getApplicationContext(), YourActivity.class ) );