【问题标题】:Android select spinner item into alert dialog and text button disappearAndroid选择微调器项目进入警报对话框并且文本按钮消失
【发布时间】:2017-01-18 19:48:24
【问题描述】:

我有一个包含一系列元素的列表视图。 单击列表视图中的一项会显示一个自定义对话框。 在自定义对话框中,我有一个布局:

  • 微调器
  • 两个按钮(OK / ANNULLA)

这是正常情况:

当我选择微调器时,他会显示一个项目列表。

当我从微调器中选择一个项目时,按钮上的文本会以这种方式消失:

ps:这在 Android 6.0 上不会发生,但在较低版本(例如 5.0)会发生

代码:

public void showDialogTagAssociation (Activity activity, Handler handler,
                                     String msg, final MyOperator elemento, final BluetoothDevice device,
                                     final int position){

    mHandler = handler;

    //-----------------------------------------------------
    // DIALOG
    dialog = new Dialog(activity);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCancelable(false);
    //-----------------------------------------------------

    //---------------------------------------------------------------------
    // LAYOUT
    dialog.setContentView(R.layout.alert_dialog_custom_tag);

    **// Spinner element
    spinner = (Spinner) dialog.findViewById(R.id.spinner);**

    // Spinner click listener
    **spinner.setOnItemSelectedListener(new OnSpinnerItemClicked());**
    //---------------------------------------------------------------------



    //----------------------------------------------------------------------
    // BUTTON OK
    dialogButtonOK = (Button) dialog.findViewById(R.id.acd_btn_ok);
    dialogButtonOK.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Log.d(TAG, "Devo assegnare il tag al nome....");
            Log.d(TAG, "Nome: " +tmpNome+"\n" +
                "TAG: "+device.getName()+" - "+device.getAddress());

            dialog.dismiss();

        }
    });

    // BUTTON ANNULLA
    dialogButtonNO = (Button) dialog.findViewById(R.id.acd_btn_no);
    dialogButtonNO.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            dialog.dismiss();

        }
    });
    //----------------------------------------------------------------------

    dialog.show();

}


**private class OnSpinnerItemClicked implements android.widget.AdapterView.OnItemSelectedListener {**

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {

        //NOME
        tmpNome = parent.getItemAtPosition(pos).toString();

    }

    @Override
    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}

感谢您以后的帮助

【问题讨论】:

  • 能否提供源代码!
  • 是的,我可以。我修改了添加代码的问题。
  • 您是否真的要将 setOnItemSelectedListener 设置为微调器。删除它并尝试。但是使用此代码我没有发现任何问题
  • 是的,因为我需要在微调器中选择的名称。该名称保存在“tmpNome”中(对整个班级可见),当我按下“OK”按钮时,我将此名称与“sendHandlerOperatorTag”一起发送给另一个班级的处理程序。
  • 删除那段代码 spinner.setOnItemSelectedListener(new OnSpinnerItemClicked());你想要的东西仍然可以工作

标签: android android-layout spinner


【解决方案1】:

删除那段代码:

spinner.setOnItemSelectedListener(new OnSpinnerItemClicked());

你想要的东西仍然可以工作。

【讨论】:

  • 问题是在 xml 布局中我有背景和 backgroundTint。必须删除属性 backgroundTint。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
相关资源
最近更新 更多