2016-04-27 2 views
0

UpdateActivity.java:Может ли Android DataBinding использовать внутренний класс?

public class UpdateActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     ActivityUpdateBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_update); 
    } 

    interface Listener { 
     void onClick(View v); 
    } 
} 

activity_update.xml:

<data> 
    <variable 
     name="listener" 
     type="com.kycq.reader.UpdateActivity$Listener"/> 
</data> 

если я установить 'слушателя', это всегда Errors.it это означает, что я не могу установить внутренний класс, или я должен установить «слушатель» по-другому?

ответ

3

Вы можете получить доступ к внутренним классам с помощью библиотеки привязки данных Android до тех пор, пока внутренний класс объявлен общедоступным. Я смог использовать внутренний класс, убедившись, что он публичный. Вместо использования com.kycq.reader.UpdateActivity$Listener используйте com.kycq.reader.UpdateActivity.Listener для доступа к внутреннему классу.

+0

Я знаю, мой вопрос: могу ли я использовать внутренний класс? –

+0

@csx Да, вы можете использовать внутренние классы, пока они общедоступны. Не уверен, почему вы используете '' 'вместо'. '. – AgileNinja

+0

это работа! я всегда думаю, что интерфейс по умолчанию открыт, а внутренний класс должен использовать $ –

Смежные вопросы