0

次のコードがあります。

private void spinnerValue(){
    spinnerwho=(Spinner)findViewById(R.id.spinnerWho);
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    adapter.add("A");
    adapter.add("B");
    spinnerwho.setAdapter(adapter);

    spinnerwho.setOnItemSelectedListener(spinnerlistener);
}
private OnItemSelectedListener spinnerlistener= new OnItemSelectedListener(){
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        if(arg0.getSelectedItem().toString().contentEquals("A")){
            if (imagechanged){
                displayalert();
            }
            else{
                // Do some operation
            }
        }

        if(arg0.getSelectedItem().toString().contentEquals("B")){
            // do some operation            
        }
    }

    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
};

private void displayAlert(DialogInterface.OnClickListener listener) {
    AlertDialog dlgAlertBox;
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);
    dlgAlert.setMessage("data will be lost if you change value without saving. Continue?");
    dlgAlert.setPositiveButton("Yes", listener);
    dlgAlert.setNegativeButton("No", listener);
    dlgAlert.setCancelable(true);           
    dlgAlertBox = dlgAlert.create();
    dlgAlertBox.show();
}
protected DialogInterface.OnClickListener BackButtonListenerforengineer = new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) 
    {
        switch (which){
        case DialogInterface.BUTTON_POSITIVE:
            // do some operation
            break;
        case DialogInterface.BUTTON_NEGATIVE:
            dialog.dismiss();
// revert to previous selection
            /*Signature.this.spinnerwho.getAdapter();
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(Signature.this, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            adapter.clear();
            adapter.add("Tenant");
            adapter.add("Engineer");
            spinnerwho.setAdapter(adapter);
            spinnerwho.setSelection(1,true);

            spinnerwho.setOnItemSelectedListener(null);*/


            break;
    }

スピナーの値を選択し、状態を確認します。スピナーの項目を変更しようとすると、[はい] と [いいえ] ボタンのある警告ダイアログが表示されます。はいをクリックすると、スピナーの値が変更されます。ユーザーが [いいえ] をクリックすると、スピナーは以前の選択に戻ります。スピナーアダプターをクリアして、新しい値を入力してみました。しかし、機能していません。私が間違っていた場所を指摘して、誰かが私を助けることができますか? 前もって感謝します。

4

1 に答える 1

0

スピナー値を使用するには、次のメソッドを使用します。

private void addListenerOnSubjectSpinner() 
{
    spiSubject.setOnItemSelectedListener(new mySpinnerListener());      
}



class mySpinnerListener implements Spinner.OnItemSelectedListener
{
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,
            long id) 
    {
        Toast.makeText(parent.getContext(), "Subject is " +
                  parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
        owq.setSubjectName(parent.getItemAtPosition(position).toString());
    }

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

}

onCreate() で、この 2 つのメソッドを呼び出します。

addListenerOnSubjectSpinner();
于 2012-04-17T11:49:47.547 に答える