Cuadro de diálogo de lista personalizada de Android
dialog file-browser (5)
El entero del elemento que recibe es el índice de la matriz charsequence que contiene sus acciones, por lo que para obtener la acción que seleccionó, puede hacer esto (dentro de su método onClick):
if (item == 0)
{
// Info item
}
else if (item == 1)
{
// Rename, and so one
O podrías hacer esto:
if (items[item].equals("Info"))
{
// Info item
}
else if (items[item].equals("Rename")
{
// Rename, and so one
}
Pero se prefiere el primer método.
Hola,
Estoy trabajando en una aplicación de navegador de archivos simple. Tengo la mayoría configurada (donde se enumera todo en los diferentes directorios y qué no), pero en lo que estoy bloqueado en este momento (lo he trabajado durante algunas horas) es cuando se selecciona un elemento de la lista, quiero tener una lista de diálogo personalizada aparecerá. Encontré este código en la página de desarrollo de Android y lo modifiqué ligeramente. Actualmente solo brinda un brindis por lo que se seleccionó, pero necesito que los tres elementos estén separados. Es decir, me gustaría hacer más que un brindis y hacer que cada selección ejecute diferentes comandos. Aquí está mi código actual
final CharSequence[] 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();
Gracias a cualquiera que pueda ayudarme solo con separarlo. He intentado algunas variaciones diferentes de sentencias if y lo que no, pero todo lo que he intentado ha fallado.
Estoy llamando al cuadro de diálogo en el cuadro de diálogo aquí está mi código ...
Prueba esto :
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() {
@Override
public void onClick(DialogInterface dialog, int which) {
AlertDialog alert = (AlertDialog) dialog;
int position = alert.getListView().getCheckedItemPosition();
if (alertPositiveListener != null)
alertPositiveListener.onPositiveClick(position);
}
};
@Override
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;
}
}
Un poco tarde pero esto puede ayudar. Lo estoy usando para rellenar una lista personalizada en un diálogo. Estoy usando un cursor, pero también puede usar un ArrayAdapter o lo que sea que más le convenga:
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.search_results_title, R.id.search_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();
y llame a ese cuadro de diálogo en el que desea abrir un cuadro de diálogo de selección único. 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");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String[] name = new String[] {"item1","item2"};
builder.setItems(name, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
//click item 1
break;
case 1:
//click item 2
break;
}
}
});
builder.show();