20

我正在尝试Activity通过单击我的OnClickListener方法中的按钮来打开新的。方法是如何OnClickListener工作的,应该在其中做什么来开始一个新的Activity

4

4 回答 4

42

可以使用名为 Intents 的 android 主要构建块之一和public void startActivity (Intent intent)属于您的 Activity 类的方法之一来完成此任务。

意图是对要执行的操作的抽象描述。它可以与 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 类——

  1. PresentActivity -- 这是您当前的活动,您想从中进行第二个活动。

  2. NextActivity -- 这是您要移动的下一个 Activity。

所以意图是这样的

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);
            }
          });
  }
}
于 2013-05-19T16:29:11.057 回答
15
//create a variable that contain your button
Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new OnClickListener(){
        @Override
        //On click function
        public void onClick(View view) {
            //Create the intent to start another activity
            Intent intent = new Intent(view.getContext(), AnotherActivity.class);
            startActivity(intent);
        }
    });
于 2013-05-19T16:21:39.250 回答
5

使用OnClicklistener或者您可以android:onClick="myMethod"在按钮的xml代码中使用,您将从中打开新布局。因此,当单击该按钮时,您的myMethod函数将被自动调用。您myMethod在课堂上的功能如下所示。

public void myMethod(View v) {
Intent intent=new Intent(context,SecondActivty.class);
startActivity(intent);
}

并在该SecondActivity.class中在 contentview中设置新布局。

于 2013-05-19T16:58:29.173 回答
3

简单的:

启动活动(onclick 处理程序)

 Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
 myIntent.putExtra("key", value); //Optional parameters
 CurrentActivity.this.startActivity(myIntent);

关于新活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.

并在 AndroidManifest.xml 中添加您的新活动:

<activity android:label="@string/app_name" android:name="NextActivity"/>
于 2013-05-19T16:20:48.733 回答