android中的覆盖布局
我有一个android库项目——SampleLibrary,它包含android中的覆盖布局,android,android-layout,Android,Android Layout,我有一个android库项目——SampleLibrary,它包含 布局文件夹中的布局文件sample_layout.xml 以及使用此布局文件sampleLayout.java的相应java文件 我也有SampleExample android项目在使用 样本库作为源 它的布局文件夹中还包含sample_layout.xml,与SampleLibrary中的sample_layout.xml相同,只是它还包含一个按钮 现在,如果我想在SampleExample项目中为这个按钮设置事件监听器。如
现在,如果我想在SampleExample项目中为这个按钮设置事件监听器。如何在不更改sampleLayout.java的情况下实现这一点?我们可以在SampleExample项目中进行更改。因此更改SampleExample项目中的
sample\u layout.xml
名称,这将是最安全的操作。您必须在SampleExample中重写SampleLayout.java。我认为您应该能够重写SampleLayout.java。
试着这样做:
public class SampleLayout extends your.lib.SampleLayout {
private Button newButton;
@Override
public void onCreate(Bundle savedInstanceState) {
...
newButton = (Button)findViewById(R.id.thebutton);
newButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (newButton.getId() == view.getId()) {
// button pressed
} else {
super.onClick(view);
// library handles this
}
}
显示您的代码以便我们可以帮助您,此示例_layout.xml用于SampleLibrary中的sampleLayout.java,因此我们无法更改名称,我无法覆盖它,因为SampleExample使用SampleLibrary作为源。由于它已经包含SampleLayout.java,重写SampleLayout.java将在SampleExample中生成SampleLayout.java的两个实例,并且project不会得到内置的,这意味着创建具有附加功能的新类。例如,
NewSampleLayout扩展了SampleLayout
,那么在不更改库的情况下,无法更改库中的行为。可以使用android片段吗?