Mostrar alertDialog con los botones de radio cuando haga clic en un listViewItem
Tengo una lista de ver con 2 elementos en ella, los 2 elementos son "segundos" y "minutos" Cuando presiono "segundos" me gustaría un alertDialogBox para abrir en mostrar 5,10,15, … segundos. Lo mismo cuando presiono minutos
Algo como esto:
- Android GridView OnItemLongClick escuchador llamado después de OnItemClick
- ¿Cómo seleccionar un elemento ListView después de un clic largo?
- Cambiar entre el evento onItemClick y onItemLongClick de Android ListView
- Cuando agrego una vista a un elemento ListView, este elemento reacciona ya no correctamente
- Vista de lista personalizada no responde al evento de clic
Pero estoy teniendo problemas para implementarlo, porque no entiendo muy bien cómo funciona. Aquí está el código que tengo:
import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class SettingsActivity extends Activity { ListView listView = (ListView) findViewById(R.id.settingsList); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings); String[] values = new String[] { "Seconds", "Minutes" }; // Define a new Adapter // First parameter - Context // Second parameter - Layout for the row // Third parameter - ID of the TextView to which the data is written // Forth - the Array of data ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); // Assign adapter to ListView listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { AlertDialogView(); } }); } private void AlertDialogView() { final CharSequence[] items = { "15 secs", "30 secs", "1 min", "2 mins" }; AlertDialog.Builder builder = new AlertDialog.Builder(ShowDialog.this);//ERROR ShowDialog cannot be resolved to a type builder.setTitle("Alert Dialog with ListView and Radio button"); builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Toast.makeText(ShowDialog.this, "Success", Toast.LENGTH_SHORT) .show(); } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Toast.makeText(ShowDialog.this, "Fail", Toast.LENGTH_SHORT) .show(); } }); AlertDialog alert = builder.create(); alert.show(); } }
- ¿Cómo implementar el evento de clic en el icono de la barra de herramientas?
- OnItemClickListener con adaptador personalizado y listview
- RecyclerView onItemClick Listener
- Manejo de elementos del menú emergente
- Cómo crear listview onItemclicklistener
- Establecer evento de clic de artículo en setOnItemClickListener de listview Android
- ¿Cómo obtener el recuento de filas en sqlite usando Android?
- OnItemClickListener y OnClickListener no funcionan para ListView
El error es claramente explicativo, te falta un semicolon
y semicolon
. Su código debe ser como
listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { AlertDialogView(); }//ERROR I'm GETTING HERE is Syntax error, insert ";" to complete Statement };
Y el código anterior debe estar dentro de la onCreate()
. ¡En el código que usted proporcionó, su flotando en el medio de ninguna parte!
- HTTPPost multipart (archivo de carga) de Java a Python webapp2
- No se puede obtener la URL del perfil público de LinkedIn en Android (BufferedInputStream está cerrado)