2013-05-19 149 views
12

我是Android开发新手。我正在尝试在我的OnClickListener方法中打开新的Activity。我应该写什么以及OnClickListener方法如何工作?Android按钮onClickListener

+0

Intent intent = new Intent(this,NewActivit.class); startactivity(意向); –

+0

pleae在将您的问题提交给此处之前进行一些研究 –

回答

31

此任务可以使用android的主要构建块之一命名为Intents,以及属于您的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类 -

  1. PresentActivity - 这是你想要去的第二个活动的当前活动。

  2. 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); 
      } 
      }); 
    } 
} 

我希望你现在能理解,如果你正面临的任何问题找回只有我在这里。总是乐于提供帮助。

1

容易:

发射活动(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"/> 
10
//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); 
     } 
    }); 
3

使用OnClicklistener或者你可以在你的buttonn的xml代码中使用android:onClick =“myMethod”打开一个新的布局。所以当点击该按钮时,您的功能将自动调用。 你的myMethod函数在类中看起来像这样。

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

然后在SecondActivity.class中设置contentview中的新布局。