2017-01-18 1 views
1

Ich habe eine Listview mit einer Reihe von Elementen. Der Klick auf eine Listenansicht zeigt mir einen benutzerdefinierten Dialog. Im benutzerdefinierten Dialog habe ich ein Layout mit:Android wählen Spinner Element in Alarmdialog und Text-Taste verschwinden

  • Ein Spinner
  • Zwei Tasten (OK/annulla)

Dies ist die normale Situation:

normal situation

Wenn Ich wähle den Spinner, er zeigt eine Liste von Gegenständen.

Wenn ich wählen Sie ein Element aus der Spinner, den Text, der auf diese Weise verschwinden, die auf den Tasten war:

anomalous situation

ps: Geschieht dies nicht auf Android 6.0, aber es passiert in der niedrigere Versionen (zB 5,0)

der Code:

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. 
    } 
} 

Dank für die Zukunft Hilfe

+0

Können Sie den Quellcode angeben? – Shuddh

+0

Ja kann ich. Ich habe die Frage geändert und den Code hinzugefügt. –

+1

Möchten Sie wirklichOnItemSelectedListener auf Spinner festlegen. Entferne das und versuche es. aber mit diesem Code sehe ich kein Problem – Shuddh

Antwort

1

das Stück Code entfernen:

spinner.setOnItemSelectedListener(new OnSpinnerItemClicked()); 

und die Sache, die Sie wollen, funktioniert noch.

+1

Das Problem war, dass ich im xml-Layout Hintergrund und BackgroundTint hatte. Die Eigenschaft backgroundTint musste entfernt werden. –

Verwandte Themen