6

Ich habe ein listView mit 2 Items drin, die 2 Items sind "seconds" und "minutes" Wenn ich "seconds" drücke, möchte ich eine alertDialogBox in show 5 öffnen , 10,15, ... Sekunden. Gleiche, wenn ich Minuten drückenZeige alertDialog mit radiobuttons wenn ich auf ein listViewItem klicke

Etwas wie folgt aus:

enter image description here

Aber ich habe Probleme ihrer Umsetzung, weil ich gut verstehe nicht sehr, wie es funktioniert. Hier ist der Code, den ich habe:

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

Antwort

2

Der Fehler eindeutig erklärend ist, werden Sie eine semicolon fehlt. Der Code sollte

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

wie sein und der obige Code sollte innerhalb des onCreate() sein. In dem Code, den du zur Verfügung gestellt hast, schwebt er mitten im Nirgendwo!

+0

Ich habe den Code geändert, wie dumm von mir ... Aber ich bekomme immer noch den Fehler auf der showDialogBox. Woher? Der Fehler ist 'ShowDialog kann nicht zu einem Typ aufgelöst werden' – mXX

+0

Es wäre besser, wenn Sie den Logcat veröffentlichen würden, damit wir sehen können, wovon Sie sprechen – ElefantPhace

+0

Nicht möglich, ich kann nicht kompilieren, weil ich Fehler habe. Logcat ist leer – mXX

Verwandte Themen