[英]Start new activity from a normal class method
我不知道如何在一个可以启动另一个活动的类中编写方法。
我有一个带5个按钮的页脚,每个按钮都应该开始一个新的活动。 我想用5个开始活动的方法创建一个类。
我想做那样的事情:
我的Footer_buttons
课程:
public class Footer_buttons{
//Back to Home activity
public static void home_footer(Context context) {
Intent intent = new Intent(context, Home_page.class);
context.startActivity(intent);
}
}
在我的一项活动中,我想称之为:
private static Context context;
....
context = this;
....
public void home_footer(View view) {
Footer_buttons.home_footer(context);
}
您可以通过几种不同的方式指定按钮应执行的行为。
xml onClick属性首先,按钮有一个名为onClick的xml属性。 您可以为此属性指定方法名称:
<Button
android:id="@+id/btnMyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lbl_click_here"
android:onClick="goToActivity" />
此按钮将调用此布局所属的Activity中的goToActivity方法。
public void goToActivity(View view) {
Intent i = new Intent(this,NewActivity.class);
startActivity(i);
}
片段中的onClickListener以下示例在片段的onCreateView事件期间将onClickListener应用于片段布局中的按钮。
这是片段的xml中的按钮:
<Button
android:id="@+id/btnMyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lbl_click_here" />
请注意,我们不再使用按钮的onClick xml属性。
onClickListener是一个接口,可以在fragment类中实现为匿名类:
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
// Find your button in the layout.
Button btnMyButton = (Button) rootView.findViewById(R.id.btnMyButton);
btnMyButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = newIntent(getActivity(),NewActivity.class);
startActivity(i);
}
});
活动中的onClickListener以下示例在片段的onCreate事件期间将onClickListener应用于Activity的布局中的按钮。
这是片段的xml中的按钮:
<Button
android:id="@+id/btnMyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lbl_click_here" />
我们再次使用按钮的onClick xml属性。
onClickListener接口现在作为活动类内部的匿名类实现:
// Find your button in the layout.
Button btnMyButton = (Button)findViewById(R.id.btnMyButton);
btnMyButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = newIntent(this,NewActivity.class);
startActivity(i);
}
});
在运行时查找xml元素
在运行时查找xml元素,如前两个示例所示,需要为元素分配一个id:
android:id="@+id/btnMyButton"
并且在调用代码中引用了此ID:
R.id.btnMyButton
当一个活动在其布局中查找元素时,它可以直接调用findByView方法,如下所示:
Button btnMyButton = (Button)findViewById(R.id.btnMyButton);
当片段在其布局中查找元素时,它必须首先在其自己的视图上调用findViewByID,如下所示:
Button btnMyButton = (Button) rootView.findViewById(R.id.btnMyButton);
铸件
请注意,在两个示例中,findViewByID的返回值都被强制转换为声明的类型 - 在本例中为Button。
Button btnMyButton = (Button)...
findViewByID默认返回View - View是Button的父级,代表最常规的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.