2012-06-19 3 views
0

Я хочу реализовать setSingleChoiceItems внутри настраиваемого диалога, но не смог этого сделать. Я хочу, когда я нажму кнопку, появится окно пользовательских предупреждений с помощью setSingleChoiceItems, после чего оно перейдет к другому действию.Не удалось реализовать setSingleChoiceItems внутри настраиваемого диалога

код ниже:

package com.ssaa; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.AlertDialog.Builder; 
import android.app.Dialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

public class VoteActivity extends Activity { 
    /** Called when the activity is first created. */ 

    Button b; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     b=(Button) findViewById(R.id.vote); 
     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       showDialog(1); 
      } 
     }); 
    } 


    public void showallDialog() 
    { 
     final CharSequence[] items = {"Yes", "No", "Can't Say"}; 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 


     builder.setTitle("AM I AWESOME?"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) 
      { 
       Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     AlertDialog alert = builder.create(); 
    } 
    @Override 
    protected Dialog onCreateDialog(int id) { 
     // TODO Auto-generated method stub 
     Dialog d =null; 
     switch (id) { 
     case 1: 

      showallDialog(); 


     default: 
      break; 
     } 
     return d; 
    } 

    /* class MyCustomDialogue extends Dialog 
    { 

     public MyCustomDialogue(Context context) { 
      super(context); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 


     } 
    }*/ 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     finish(); 
    } 
} 

Я думаю, что я делаю неправильно в showallDialog() методе. Пожалуйста, помогите мне исправить это.

ответ

1

Вы в настоящее время пытаются показать пустое диалоговое окно, так как вы никогда не присвоить значение «г» в onCreateDialog

showallDialog должен вернуть диалог, который вы создали. например:

 public AlertDialog showallDialog() 
    { 
     final CharSequence[] items = {"Yes", "No", "Can't Say"}; 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 


     builder.setTitle("AM I AWESOME?"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) 
      { 
       Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
       //create your intent here 
       Intent intent = new Intent(getApplicationContext(), YourNextActivity.class); 
       startActivity(intent); 
      } 
     }); 
     return builder.create(); 
    } 

Затем, когда вы создаете ваш диалог в onCreateDialog присвоить "D" к вашему AlertDialog

case 1: 
    d = showallDialog(); 
    break; 
Смежные вопросы