Переопределение макетов в Android - PullRequest
2 голосов
/ 24 мая 2011

У меня есть проект библиотеки Android - SampleLibrary, который содержит

  1. файл макета sample_layout.xml в папке макета
  2. и соответствующий файл Java, который использует этот файл макета sampleLayout.java

У меня также есть проект Android SampleExample в том же рабочем пространстве, который использует

  1. SampleLibrary в качестве источника
  2. Он также содержит sample_layout.xml в папке макета, который является тем жекак в файле sample_layout.xml в SampleLibrary, за исключением того, что он содержит еще одну кнопку.

Теперь, если я хочу установить прослушиватели событий для этой кнопки в проекте SampleExample.Как это можно сделать без внесения изменений в sampleLayout.java?Нам разрешено вносить изменения в проект SampleExample.

Ответы [ 3 ]

0 голосов
/ 24 мая 2011

Вы должны переопределить SampleLayout.java в SampleExample.

0 голосов
/ 01 марта 2012

Я думаю, вы должны иметь возможность переопределить 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
    }
}
0 голосов
/ 24 мая 2011

Так что измените имя sample_layout.xml внутри проекта SampleExample, это будет самое безопасное занятие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...