2013-02-01 31 views
0

我試圖創建一個使用EditText字段和ImageButton的自定義微調器。然而,我無法找到如何獲得我原本在Spinner中按下ImageButton後顯示的彈出式菜單。帶有EditText字段和圖像按鈕的自定義微調器

This是我能找到的最接近的問題,但它與我的問題完全不一樣。

這裏是我的老微調代碼:

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接近我想要什麼,我真的想複製上面顯示的微調。

回答

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();