Android spinner为什么我不能像普通人一样显示下拉?

时间:2016-03-01 18:35:12

标签: android android-spinner

我正在制作纸牌游戏,我想显示一个对话框,提示用户选择套装。我创建对话框并设置布局。一旦我尝试使用setadapter填充微调器我的应用程序痉挛一个白色的屏幕来,它从一开始就重新加载。这是下面的代码。

    private void showChooseSuitDialog(){
        final Dialog chooseSuitDialog = new Dialog(myContext);
        chooseSuitDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        chooseSuitDialog.setContentView(R.layout.choose_suit_dialog);
        final Spinner suitSpinner = (Spinner)findViewById(R.id.suitSpinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(myContext, R.array.suits, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        suitSpinner.setAdapter(adapter); // **** This is where it blows up ****
//        Button okButton = (Button) chooseSuitDialog.findViewById(R.id.okButton);
//        okButton.setOnClickListener(new OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                validSuit = (suitSpinner.getSelectedItemPosition()+1) * 100;
//                String suitText = "";
//                if(validSuit == 100){
//                    suitText = "Diamonds";
//                }else if(validSuit == 200){
//                    suitText = "Clubs";
//                }else if(validSuit == 300) {
//                    suitText = "Hearts";
//                }else {
//                    suitText = "Spades";
//                }
//                chooseSuitDialog.dismiss();
//                Toast.makeText(myContext, "You chose " + suitText, Toast.LENGTH_SHORT).show();
//            }
//        });

1 个答案:

答案 0 :(得分:0)

看起来你的微调器在活动(或片段)中,而不是在对话框中。

为卡选择器创建DialogFragment,并将微调器添加到该对话框片段的布局中。选择后将结果传回活动(或片段)。