Show alertDialog with radio buttons when clicking listViewItem

I have a listView with two elements in it, 2 elements - “seconds” and “minutes”. When I click on “seconds”, I would like alertDialogBox to open en show 5,10,15, ... seconds. Same thing when I press the minutes

Something like that:

enter image description here

But I had problems with its implementation, because I do not understand very well how it works. Here is the code I have:

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(); } } 
+6
source share
1 answer

The error is clearly explanatory; you are missing semicolon . Your code should look like

 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 }; 

and the above code should be inside onCreate() . In the code you indicated, its floating in the middle of nowhere!

+2
source

All Articles