我们可以使用<include />
将布局包含在另一个布局中。
我使用<include />
将 activity_main.xml 包含在 activity_second.xml 中。
activity_main.xml 有一个<TextView />
和一个<Button />
。
<Button />
在 MainActivity.java
doThis(View v){..}
如何在 SecondActivity.java
中重用Button Handler答案 0 :(得分:3)
您可以使用片段
答案 1 :(得分:2)
没有按钮处理程序的事情。它是OnClickListener
。要重新使用它,请将该源复制到第二个活动类,或者创建MyActivity
和MainActivity
将扩展的SecondAcivity
类,并将公共代码放在那里。
答案 2 :(得分:1)
我为你的问题做了类似的事情。不要认为它比使用碎片更好,但简而言之。
你有layout_main.xml。您可以将其他XML(menu.xml)导入到以下内容中:
<include
android:id="@+id/layoutMenu"
layout="@layout/menu" />
像这样创建一个Menu.java类(我从我自己的类中复制了这个,所以它不完整但是为了它的想法):
public class Menu {
ImageView buttonNieuws;
public void set(Activity activity, String currentPage) {
// Button NIEUWS
buttonNieuws = (ImageView) activity.findViewById(R.id.button_nieuws);
if (!currentPage.equals("nieuws")) {
buttonNieuws.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(),
Nieuws.class);
view.getContext().startActivity(intent);
}
});
} else {
buttonNieuws.setImageDrawable(activity.getResources().getDrawable(
R.drawable.button_nieuws_on));
} ...
然后在您的主Activity类中,您可以使用这样的代码将它们全部链接在一起:
Menu menu = new Menu();
menu.set(this, currentPage);
巨大的缺点是无限活动堆叠在一起。这是我的临时解决方案,因为我还没有进入碎片。