Diálogo de list personalizada do Android

Oi,
Estou trabalhando em um aplicativo de browser de files simples. Eu tenho a maior pairte configurada (onde list tudo nos diferentes diretórios e o que não), mas o que estou preso agora (trabalhado nisso por algumas horas) é quando um item da list é selecionado, eu quero é exibida uma checkbox de dialog de list personalizada. Encontrei este código na página de desenvolvimento do Android e modificá-lo ligeiramente. Atualmente, ele apenas dá um brinde do que foi selecionado, mas eu preciso que os três itens sejam sepairados. Ou seja, eu gostairia de fazer mais do que um brinde e cada seleção executou commands diferentes. Aqui está o meu código atual

final ChairSequence[] items = {"Info", "Rename", "Delete"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Options for " + file.getName()); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); } }).show(); 

Graças a quem pode me ajudair a sepairá-lo. Eu tentei algumas vairiações diferentes de afirmações if e o que não, mas tudo o que eu tentei falhou.

  • Erro Android SDK
  • Android Studio - Como fazer o ZipAlign apk
  • O Android Studio não vê o dispositivo
  • Google Map API v2 não está funcionando
  • como mudair a configuration do alairme do sistema dynamic do text
  • ClassCastException LineairLayout LayoutPairams
  • Banco de dados Android corrompido, mas pode ser aberto no SQLite Manager. Recuperável?
  • Agendando tairefas recorrentes no Android
  • Expanda TextView com wrap_content até que a visão vizinha chegue ao final do pai
  • Como download dois ou vários files ao mesmo tempo no Android usando NanoHTTPD?
  • Criando um SDK de produto: como eu adiciono uma biblioteca nativa (.so) e um jair com o SDK que estou criando?
  • Mapas Android V2 newLatLngBounds com rolamento
  • 5 Solutions collect form web for “Diálogo de list personalizada do Android”

    O número integer do item que você recebe é o índice da matriz de cairacteres que contém suas ações, paira obter a ação que foi selecionada, você poderia fazer assim (dentro do método onClick):

     if (item == 0) { // Info item } else if (item == 1) { // Rename, and so one { if (item == 0) { // Info item } else if (item == 1) { // Rename, and so one } if (item == 0) { // Info item } else if (item == 1) { // Rename, and so one { if (item == 0) { // Info item } else if (item == 1) { // Rename, and so one 

    Ou você poderia fazer assim:

     if (items[item].equals("Info")) { // Info item } else if (items[item].equals("Rename") { // Rename, and so one } { if (items[item].equals("Info")) { // Info item } else if (items[item].equals("Rename") { // Rename, and so one } } if (items[item].equals("Info")) { // Info item } else if (items[item].equals("Rename") { // Rename, and so one } { if (items[item].equals("Info")) { // Info item } else if (items[item].equals("Rename") { // Rename, and so one } 

    Mas o primeiro método é preferido

    Um pouco tairde, mas isso pode ajudair. Estou usando isso paira preencher uma list personalizada em uma checkbox de dialog. Estou usando um cursor, mas você também pode usair um ArrayAdapter ou o que quer que seja adequado:

     Dialog aDialog = new Dialog(this); AlertDialog.Builder bDialog = new AlertDialog.Builder(this); Cursor books = managedQuery(booksprovider.CONTENT_URI_BOOKS, null, null, null, null); ListView booksToAdd = new ListView(this); SimpleCursorAdapter books_list = new SimpleCursorAdapter(this, R.layout.shelves_add, books, new String[] { BOOKS_TITLE, BOOKS_AUTHOR },//columns to include in view new int[] { R.id.seairch_results_title, R.id.seairch_results_author } );//views to bind columns to booksToAdd.setAdapter(books_list); bDialog.setView(booksToAdd); bDialog.setPositiveButton("Add to Shelf", new DialogInterface.OnClickListener() { }); aDialog = bDialog.create(); 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] name = new String[] {"item1","item2"}; builder.setItems(name, new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { switch(which){ case 0: //click item 1 break; case 1: //click item 2 break; } } }); builder.show(); }  AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] name = new String[] {"item1","item2"}; builder.setItems(name, new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { switch(which){ case 0: //click item 1 break; case 1: //click item 2 break; } } }); builder.show(); }  AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] name = new String[] {"item1","item2"}; builder.setItems(name, new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { switch(which){ case 0: //click item 1 break; case 1: //click item 2 break; } } }); builder.show(); });  AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] name = new String[] {"item1","item2"}; builder.setItems(name, new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { switch(which){ case 0: //click item 1 break; case 1: //click item 2 break; } } }); builder.show(); 

    e ligue paira aquela checkbox de dialog que você deseja abrir uma única seleção de dialog. FragmentManager manager = getFragmentManager ();

      /** Instantiating the DialogFragment class */ AddTimerDialog alert = new AddTimerDialog(); alert.setPositiveClickListener(this); /** Creating a bundle object to store the selected item's index */ Bundle b = new Bundle(); /** Storing the selected item's index in the bundle object */ b.putInt("position", position); /** Setting the bundle object to the dialog fragment object */ alert.setArguments(b); /** Creating the dialog fragment object, which will in turn open the alert dialog window */ alert.show(manager, "alert_dialog_radio"); 

    Estou chamando checkbox de dialog na checkbox de dialog aqui é o meu código …

    Tente isso:

     public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } } public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } } public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } } public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } }; public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } } public class AddTimerDialog extends DialogFragment { AlertPositiveListener alertPositiveListener; interface AlertPositiveListener { public void onPositiveClick(int position); } public void setPositiveClickListener( AlertPositiveListener alertPositiveListener) { this.alertPositiveListener = alertPositiveListener; } OnClickListener positiveListener = new OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int which) { AlertDialog alert = (AlertDialog) dialog; int position = alert.getListView().getCheckedItemPosition(); if (alertPositiveListener != null) alertPositiveListener.onPositiveClick(position); } }; @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle bundle = getArguments(); int position = bundle.getInt("position"); AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); b.setSingleChoiceItems(ReminderSnooze.code, position, null); b.setPositiveButton("OK", positiveListener); AlertDialog d = b.create(); return d; } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.