6

我有一个列表视图,其中有2个项目,这两个项目是“秒”和“分钟” 当我按“秒”时,我想要一个alertDialogBox打开en show 5 ,10,15,...秒。同样的,当我按分钟当单击listViewItem时显示带单选按钮的alertDialog

事情是这样的:

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

如果您发布logcat,以便我们可以看到您正在谈论的内容会更好 – ElefantPhace

+0

不可能,我无法编译,因为我有错误。 Logcat是空的 – mXX

相关问题