0

EditTextフィールドとImageButtonを使用するカスタムスピナーを作成しようとしています。ただし、ImageButtonを押した後に表示するためにスピナーに最初に持っていたのと同じポップアップメニューを取得する方法が見つかりません。

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私が望むものに近いですが、私は本当に上記のスピナーを複製したいと思います。

4

1 に答える 1

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();
于 2013-02-04T17:04:24.650 に答える