如何在android中获取第一类中使用的xml id以在第二类中使用

如何在android中获取第一类中使用的xml id以在第二类中使用,android,Android,我将在第一个活动中获取android xml id (例如) 现在的问题是,如何在第二个活动中使用相同的按钮而不使用findViewById() (即)我不想在第二个活动中访问xml,而不是必须从第一个活动本身访问这些按钮ID 我正在尝试创建一个公共标题 请帮帮我 您不能,因为来自两个不同活动的按钮不会共享同一实例 相反,如果您想为您的头提供一些公共代码,您可以做的是在第三个类的静态方法中委托这些代码。例如: public class MyHeader { private Button

我将在第一个活动中获取android xml id

(例如)

现在的问题是,如何在第二个活动中使用相同的按钮而不使用
findViewById()

(即)我不想在第二个活动中访问xml,而不是必须从第一个活动本身访问这些按钮ID

我正在尝试创建一个公共标题


请帮帮我

您不能,因为来自两个不同活动的按钮不会共享同一实例

相反,如果您想为您的头提供一些公共代码,您可以做的是在第三个类的静态方法中委托这些代码。例如:

public class MyHeader {

    private Button button1,button2;

    public MyHeader(Activity source) {
       this.button1 = (Button)source.findViewById(R.id.b_one);
       this.button2 = (Button)source.findViewById(R.id.b_two); 
       // ...
       }

    public Button getHeaderButtonOne() { return button1; }
    // And so on...
    }
在您的活动中,保留该类的一个实例(初始化为:

  private MyHeader header;

  // ... in onCreate() method
  header = new MyHeader(this);

android上的etch activity有自己的视图。对于注释标题,只需创建一个抽象类来扩展activity并包含标题布局。在XML中使用include或merge的方法与在MyHeader类中为button1设置click事件并在另一个类中使用click事件的方法相同。为什么要这样做?如果有一些常见代码,然后在MyHeader类上编写它。如果它是特定的,那么让活动为按钮设置OnClickListener。如果您坚持,您可以定义一些
MyHeader.setButton1ClickListener(OnClickListener)
方法来委托
setOnClickListener
方法调用。考虑委托!
  private MyHeader header;

  // ... in onCreate() method
  header = new MyHeader(this);