#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, чтобы показывать все после выбора элемента счетчика