Açılır pencerelerin nasıl oluşturulacağını açıklayan bir YouTube öğretici videosunu (https://www.youtube.com/watch?v=wxqgtEewdfo) temel alarak, arka düğme yerine dokunma olayı ile açılır pencerenin nasıl kapatılacağını merak ediyordum ...Açılır pencereleri için geri düğmesini devre dışı bırakma
İşte MainActivity var:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout relative = (RelativeLayout)findViewById(R.id.relativeTest);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().
getSystemService(LAYOUT_INFLATER_SERVICE);
ViewGroup container = (ViewGroup) layoutInflater.inflate(R.layout.myLayout, null);
PopupWindow popupWindow = new PopupWindow(container, AbsListView.LayoutParams.MATCH_PARENT,
AbsListView.LayoutParams.MATCH_PARENT, true);
popupWindow.showAtLocation(relative, Gravity.CENTER, 0, 0);
container.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popupWindow.dismiss();
return true;
}
});
}
});
}
@Override
public void onBackPressed() {
// I want the back button to be disabled for both MainActivity and the
// popup window.
}
... Ben (onBackPressed yerleştirmelidir) başka bir yerde veya hatta mümkün olabilir?
Şimdiden teşekkürler.
BackPressed'i geçersiz kılabilir ve bazı mantık kullanabilirsiniz (örneğin, açılır pencerenin gösterilip gösterilmediğini denetleme). BackPressed'i gerçekten kullanmak istediğiniz durumlarda super.onBackPressed'i arayın. Örneğin, 'if (! MPopupWindow.isShowing()) super.onBackPressed();' – zgc7009
[Android açılır pencere işten çıkarmanın] olası kopyası (http://stackoverflow.com/questions/3121232/android-popup-window-dismissal) –
@ zgc7009 Ne demek istediğimi biliyorum ve daha önce yaptığım şeydi, ama burada vites değiştirdim ... Hem event_main hem de popup için genel olarak geri düğmesini devre dışı bırakmak istiyorum (yalnızca bir dokunma olayı tarafından reddedilebilir) ve Bir şekilde yalnızca API 23 (6.0) altındaki cihazlar için çalışır. – DaveNOTDavid