在Android中调用另一个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);
将以下内容添加到button单击事件中:
Intent intent = new Intent(First.this, Second.class); startActivity(intent); finish();
这个任务可以使用一个名为Intents的android主要构build块以及属于您的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类,并且在一个button上单击的OnClickListener()
你想从一个Activity移动到另一个Activity –
-
PresentActivity – 这是您当前想要参加第二项活动的活动。
-
NextActivity – 这是你想要移动的下一个活动(它可能包含任何像你说的对话框)。
所以意图就是这样
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); } }); } }
这个例子与button点击有关,你可以在任何你想在你的活动之间切换的地方使用代码在button点击的OnClickListener()
内写入代码。
把它放在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); } });
我已经实现了这种方式,它的工作原理,比报道的要容易得多。
我们有两个活动:一个是主要的 ,另一个是次要的 。
在次要活动中,我们要结束主要活动,定义以下variables:
public static Activity ACTIVIDAD;
然后用下面的方法:
public static void enlaceActividadPrincipal(Activity actividad) { tuActividad.ACTIVIDAD=actividad; }
然后,在onCreate
方法的主要活动中,进行调用:
actividadSecundaria.enlaceActividadPrincipal(this);
现在,你在控制。 现在,从您的次要活动中,您可以完成主要活动。 完成调用函数,如下所示:
ACTIVIDAD.finish();
以下代码演示了如何通过意图启动另一个活动。
以连接到指定的类的意图开始活动
Intent i = new Intent(this, ActivityTwo.class); startActivity(i);
其他Android活动启动的活动称为子活动。 这个措词使得描述哪个活动更加容易。
检查下面的代码来打开新的活动。
Intent f = new Intent(MainActivity.this,SecondActivity.class);
startActivity(F);