6

Ho un listView con 2 elementi in esso, i 2 elementi sono "secondi" e "minuti" Quando premo "secondi" Mi piacerebbe un alertDialogBox per aprire en show 5 , 10,15, ... secondi. Lo stesso quando premo minutiMostra alertDialog con pulsanti radio quando si fa clic su una listaViewItem

Qualcosa di simile a questo:

enter image description here

Ma sto avendo problemi di attuazione, perché non capisco molto bene come si sta lavorando. Ecco il codice che ho:

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

risposta

2

L'errore è chiaramente esplicativo, ti manca un semicolon. Il codice dovrebbe essere come

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

e il codice di cui sopra dovrebbe essere all'interno della onCreate(). Nel codice che hai fornito, fluttua nel mezzo del nulla!

+0

Ho cambiato il codice, quanto sono stupido da parte mia ... Ma sto ancora ricevendo l'errore su showDialogBox. Come mai? L'errore è 'ShowDialog non può essere risolto in un tipo' – mXX

+0

Sarebbe meglio se tu pubblichi il logcat in modo che possiamo vedere di cosa stai parlando – ElefantPhace

+0

Non possibile, non posso compilare perché sto avendo errori. Logcat è vuoto – mXX

Problemi correlati