我不知道如何在一个可以启动另一个活动的类中编写方法。
我有一个带有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);
}
答案 0 :(得分:2)
您可以通过几种不同的方式指定按钮应执行的行为。
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的父级,代表最常规的类型。