6

У меня есть listView с двумя элементами в нем, 2 элемента - «секунды» и «минуты» Когда я нажимаю «секунды», мне бы хотелось, чтобы alertDialogBox открывал en show 5 , 10,15, ... секунд. То же самое, когда я нажимаю минутПоказать предупреждениеДиалог с радиообменами при щелчке спискаViewItem

Что-то вроде этого:

enter image description here

Но у меня возникают проблемы реализации, потому что я не очень хорошо понимаю, как это работает. Вот код, у меня есть:

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

ответ

2

Ошибка явно пояснения, вам не хватает semicolon. Ваш код должен быть как

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

и приведенный выше код должен быть внутри onCreate(). В коде, который вы указали, его плавающий в середине нигде!

+0

Я изменил код, как глупо от меня ... Но я все еще получаю ошибку в showDialogBox. Как так? Ошибка: «ShowDialog не может быть разрешен для типа» – mXX

+0

Было бы лучше, если бы вы разместили логарифм, чтобы мы могли видеть, что вы говорите о – ElefantPhace

+0

Невозможно, я не могу скомпилировать, потому что у меня есть ошибки. Logcat пуст – mXX