我试图通过点击我的Activity
方法中的按钮打开新的OnClickListener
。 OnClickListener
方法如何工作以及应该如何开始新的Activity
?
这个任务可以使用一个名为Intents的android主要构建块和属于您的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类 -
所以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);
}
});
}
}
//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);
}
});
使用OnClicklistener
或者你可以在你的按钮的xml代码中使用android:onClick="myMethod"
,你将从中打开一个新的布局。因此,当单击该按钮时,将自动调用myMethod函数。你在课堂上的myMethod
功能看起来像这样。
public void myMethod(View v) {
Intent intent=new Intent(context,SecondActivty.class);
startActivity(intent);
}
在SecondActivity.class中,在contentview中设置新的布局。
简单:
启动活动(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"/>