我正在尝试创建一个使用EditText字段和ImageButton的自定义微调器。然而,我无法找到如何获得我在Spinner中按下ImageButton后显示的相同弹出菜单。
This
是我能找到的最接近的问题,但它与我的问题完全不同。
这是我的旧spinner代码:
apModeAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_spinner_item, res.getStringArray( R.array.anti_pump_ap_mode_array ) );
apModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
apModeSpinner = (Spinner) findViewById(R.id.apModeSpinner);
apModeSpinner.setAdapter(apModeAdapter);
apModeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
或者,在ArrayList
Resources:
代替数组
pumpCountAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, pumpCountList);
pumpCountAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
pumpCountSpinner.setAdapter(pumpCountAdapter);
pumpCountSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
我不想要PopUp Menu
。
我确实想要类似于ContextMenu
的东西,但我不想要它底部的按钮。我尝试自己实现并删除它们,但它不能干净地工作。 onClick
方法只有一个按下按钮的参数。
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder ab=new AlertDialog.Builder(MoreParameters.this);
ab.setTitle(R.string.anti_pump_ap_mode);
ab.setSingleChoiceItems(res.getStringArray( R.array.anti_pump_ap_mode_array ), 0,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// onClick Action
}
});
ab.show();
虽然ContextMenu
接近我想要的,但我真的想要复制上面显示的微调器。
答案 0 :(得分:1)
我找到的解决方案是将ab.setSingleChoiceItems()
更改为ab.setItems()
,这需要删除传递的0
参数。
此:
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder ab=new AlertDialog.Builder(MoreParameters.this);
ab.setTitle(R.string.anti_pump_ap_mode);
ab.setSingleChoiceItems(res.getStringArray( R.array.anti_pump_ap_mode_array ), 0,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// onClick Action
}
});
ab.show();
成为这个:
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder ab=new AlertDialog.Builder(MoreParameters.this);
ab.setTitle(R.string.anti_pump_ap_mode);
ab.setItems(res.getStringArray( R.array.anti_pump_ap_mode_array ),new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// onClick Action
}
});
ab.show();