Счетчик в AlertDialog приводит к сбою устройства

#android #android-spinner #android-alertdialog

#Android #android-счетчик #android-alertdialog

Вопрос:

Счетчик и AlertDialog отображаются при появлении запроса. Однако, когда я выбираю элемент из счетчика, а затем снова нажимаю на счетчик, устройство выходит из строя. Ошибка появляется только на моем эмуляторе Nexus 6 API 24 x86_64, а не на моем физическом устройстве.

Код в контексте

AlertDialog

 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(BookingDetailActivity.this);
            final LayoutInflater layoutInflater = LayoutInflater.from(BookingDetailActivity.this);
            final View reminderView = layoutInflater.inflate(R.layout.reminder, null);

            final Spinner reminderSpinner = (Spinner) reminderView.findViewById(R.id.reminder_spinner);
            ArrayAdapter<CharSequence> reminderAdapter = ArrayAdapter.createFromResource(BookingDetailActivity.this, R.array.reminder, android.R.layout.simple_spinner_item);
            reminderAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            reminderSpinner.setAdapter(reminderAdapter);

            alertDialogBuilder.setTitle("Do you want to get informed by Email or SMS?");

            reminderSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    Toast.makeText(parent.getContext(), "Clicked : "  
                            parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });

            alertDialogBuilder.setCancelable(true);
            alertDialogBuilder.setView(reminderView).setPositiveButton("SMS", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {                     
                    Toast.makeText(getApplicationContext(), "You will be reminded via SMS", Toast.LENGTH_LONG).show();
                }
            }).setNegativeButton("Email", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Toast.makeText(getApplicationContext(), "You will be reminded via Email", Toast.LENGTH_LONG).show();
                }
            });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
  

Logcat

Logcat при выборе элемента счетчика.

 10-11 08:27:57.393 2704-2704/com.utshelps.utshelpsapp D/BookingDetailActivity: reminderSpinner
10-11 08:27:57.739 2704-2757/com.utshelps.utshelpsapp D/OpenGLRenderer: endAllActiveAnimators on 0x7ffed1f86800 (DropDownListView) with handle 0x7ffed2340300
10-11 08:27:57.740 1501-2238/system_process I/WindowManager: Destroying surface Surface(name=PopupWindow:eaf530b) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2478 com.android.server.wm.WindowManagerService.removeWindowLocked:2436 com.android.server.wm.WindowManagerService.removeWindowLocked:2305 com.android.server.wm.WindowManagerService.removeWindow:2300 com.android.server.wm.Session.remove:193 
  

макет.напоминание

  • используется для раздувания представления AlertDialog

     <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <Spinner
            android:id="@ id/reminder_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />
    </FrameLayout>
      

Комментарии:

1. вы очистили код и попробовали еще раз?

2. Я сделал и до сих пор получаю ту же ошибку

3. опубликуйте весь журнал cat, пожалуйста

4. обновлен logcat, чтобы показывать все после выбора элемента счетчика