2016-10-21 16 views
0

можно обнаружить взаимодействие с пользователем в активности с этим кодом:Как определить взаимодействие пользователя с диалогом?

@Override 
public void onUserInteraction() { 
    super.onUserInteraction(); 
} 

Но Android Dialog не имеет метод, как это. И я не мог найти способ справиться с этим.

Как я могу это сделать?

+0

Вы пробовали если вы получаете onUserInteraction события в своей деятельности, пока отображается диалоговое окно? Если да, вы можете отслеживать, отображается ли диалоговое окно и соответствующим образом обрабатывать дело. – Alex

+0

Я не мог получать события в своей деятельности. – Burak

ответ

0

Вы можете использовать AppCompatActivity стиль в диалоге со стилем вместо регулярного диалога Android

<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
... 
</style> 

Тогда вы могли бы использовать функциональность класса активность

Вы также должны использовать следующие OnCreate:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(android.support.v7.appcompat.R.layout.abc_alert_dialog_material); 
} 

Чтобы вести себя так, как диалог, вам нужно вручную найти все виды, необходимые для прикрепления кликов к каждой кнопке.

Вот некоторые идентификаторы могут оказаться полезными:

@BindView(android.support.v7.appcompat.R.id.topPanel) 
protected ViewGroup mTopPanel; 
@BindView(android.support.v7.appcompat.R.id.contentPanel) 
protected ViewGroup mContentPanel; 
@BindView(android.support.v7.appcompat.R.id.customPanel) 
protected ViewGroup mCustomPanel; 
@BindView(android.support.v7.appcompat.R.id.custom) 
protected ViewGroup mCustomViewContainer; 
@BindView(android.support.v7.appcompat.R.id.textSpacerNoButtons) 
protected View mTextSpacer; 
@BindView(android.support.v7.appcompat.R.id.buttonPanel) 
protected ButtonBarLayout mButtonPanel; 

@BindView(android.R.id.message) 
protected TextView mMessage; 
@BindView(android.R.id.button1) 
protected Button mPositiveButton; 
@BindView(android.R.id.button2) 
protected Button mNegativeButton; 
@BindView(android.R.id.button3) 
protected Button mNeutralButton; 

(включая пояснения нож для масла, если вы не используете нож для масла использовать только findViewById с каждой аннотацией из @BindView (ид))