【发布时间】: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