我该如何从一个(当前的)活动中调用另一个活动?
同样,我想从我的当前活动中调用包含对话框消息框的活动。
我该如何从一个(当前的)活动中调用另一个活动?
同样,我想从我的当前活动中调用包含对话框消息框的活动。
第一个问题:
使用Intent调用另一个Activity。在清单文件中,您应该添加:
<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);
}
});
检查以下代码以从一个活动调用另一个活动。
Intent intent = new Intent(CurrentActivity.this, OtherActivity.class);
CurrentActivity.this.startActivity(intent);
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);
}
});
由于我们不知道您的活动类的名称,让我们称您当前的活动为Activity1,您希望打开的活动为Activity2(这些是类的名称)
首先,您需要定义一个将发送到Activity2的意图:
Intent launchActivity2 = new Intent(Activity1.this, Activity2.class);
然后,您可以通过运行以下命令来简单启动该活动:
startActivity(launchActivity2);
Intent intent = new Intent(First.this, Second.class);
startActivity(intent);
finish();
这个任务可以通过使用Android的主要构建块之一——Intents和属于您的Activity类的一个方法public void startActivity (Intent intent)
来完成。
Intent是要执行的操作的抽象描述。它可与startActivity一起使用,以启动Activity,broadcastIntent发送到任何感兴趣的BroadcastReceiver组件,并使用startService(Intent)或bindService(Intent、ServiceConnection、int)与后台Service通信。
Intent提供了在不同应用程序中的代码之间执行后期运行时绑定的功能。它最重要的用途是在启动活动时,它可以被视为活动之间的粘合剂。它基本上是一个被动数据结构,保存要执行的操作的抽象描述。
请参阅官方文档 -- http://developer.android.com/reference/android/content/Intent.html
public void startActivity (Intent intent)
-- 用于启动新Activity。
因此,假设您有两个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()
中使用代码,在任何想要在活动之间切换的地方使用。我已经实现了这种方式,它有效果。比所有报道的都要简单。
我们有两个活动:一个是主要活动,另一个是次要活动。
在次要活动中,也就是我们想要结束主要活动的地方,定义以下变量:
public static Activity ACTIVIDAD;
然后是下面的方法:
public static void enlaceActividadPrincipal(Activity actividad)
{
tuActividad.ACTIVIDAD=actividad;
}
然后,在您的主活动中从onCreate
方法中进行调用:
actividadSecundaria.enlaceActividadPrincipal(this);
现在,你有了控制权。现在,从你的次要活动中,你可以完成主要活动。像这样完成调用函数:
ACTIVIDAD.finish();
调用另一个活动的最简单方法是
startActivity( new Intent( getApplicationContext(), YourActivity.class ) );
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
由其他Android活动启动的活动称为子活动。这个术语使得更容易描述所指的活动。
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);
}
});