Pourquoi je ne peux pas définir onClickListener d'un bouton dans une boîte de dialogue point de vue?
J'ai un dialogue personnalisé qui est décrit ci-dessous.
Ma Personnalisé de la boîte de Dialogue mise en page (*my_dialog.xml*) qui ne contiennent qu'une "disparaître" bouton:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<Button
android:id="@+id/dismiss_btn"
android:layout_width="100dip"
android:layout_height="30dip"
android:layout_centerHorizontal="true"
android:text="Dismiss me"
android:textSize="8dip"
android:textColor="#ffffff"
/>
</RelativeLayout>
mon boîte de dialogue afficher la classe:
public class MyDialog extends Dialog{
public MyDialog(Context context){
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_dialog);
Button dismissMeBtn = (Button)findViewById(R.id.dismiss_btn);
/** ERROR Message when set onClickListener below (throw by eclipse editor)**/
// The method setOnClickListener(View.OnClickListener) in the
// type View is not applicable for the arguments (new DialogInterface.OnClickListener(){})
dismissMeBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MyDialog.this.dismiss();
}
});
getWindow().setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
}
Que le code indiqué ci-dessus, j'ai un "*dismiss_btn*" bouton dans la boîte de dialogue, je voudrais fermer la boîte de dialogue lorsque le rejeter bouton est pressé, mais j'ai une erreur dans mon code quand setOnClickListener pour le bouton supprimer (comme indiqué dans le code).
Message d'erreur (erreur de jeter par eclipse de l'éditeur):
La méthode setOnClickListener(point de Vue.OnClickListener) dans le type de Vue n'est pas applicable pour les arguments (new DialogInterface.OnClickListener(){})
Pourquoi j'ai obtenu l'erreur? Pourquoi je ne peux pas définir onClickListener d'un bouton dans une boîte de dialogue afficher?
OriginalL'auteur Leem | 2011-07-07
Vous devez vous connecter pour publier un commentaire.
Comme eclipse pense que c'est DialogInterface onClickListener mais vous avez besoin d'une Vue onClickListener de sorte qu'il sera
Merci, ça a fonctionné.
Nécessaires à l'utilisation de cette approche pour mettre en œuvre un "Fragment de Pager' exemple: developer.android.com/reference/android/support/v4/app/.... Espérons que cela aide quelqu'un là-bas!
OriginalL'auteur matsjoe
C'est parce que vous êtes dans le contexte de
DialogInterface
et il aOnClickListener
interface sur son propre.De votre code devrait être:
OriginalL'auteur Ognyan
Il semble que vous avez un problème avec votre importations.
Lorsque vous essayez de créer un nouveau OnClickListener, vous êtes en appelant le constructeur de DialogInterface.OnClickListener, qui n'est pas le besoin OnClickListener pour un Bouton (probablement en raison d'une
import android.content.DialogInterface.OnClickListener
)Essayez d'utiliser
new View.OnclickListener(){ ... }
ou de remplacer l'importation parimport android.view.View.OnClickListener
et il devrait être alritght.OriginalL'auteur Lyrkan