我们可以使用<include />
将布局包含到另一个布局中。
我使用 .xml 将activity_main.xml包含到activity_second.xml中<include />
。
activity_main.xml有一个<TextView />
和一个<Button />
。并且在MainActivity.java<Button />
中有一个处理程序doThis(View v){..}
如何在SecondActivity.java中重用按钮处理程序
我们可以使用<include />
将布局包含到另一个布局中。
我使用 .xml 将activity_main.xml包含到activity_second.xml中<include />
。
activity_main.xml有一个<TextView />
和一个<Button />
。并且在MainActivity.java<Button />
中有一个处理程序doThis(View v){..}
如何在SecondActivity.java中重用按钮处理程序
您可以为此使用片段
没有按钮处理程序。它是OnClickListener
。并且要重用它,要么将该源复制到第二个活动类,要么创建MyActivity
你的类,MainActivity
并将SecondAcivity
其扩展并将公共代码放在那里。
我对你的问题做了类似的事情。不要认为它比使用 Fragments 更好,但简而言之。
你有你的 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));
} ...
然后在您的主活动类中,您可以使用这样的代码将它们链接在一起:
Menu menu = new Menu();
menu.set(this, currentPage);
巨大的缺点是无限的活动会堆叠在一起。这是我的临时解决方案,因为我还没有进入 Fragments。