如何在 android 中的片段按钮上添加监听器
how can I add a listener on the buttons of a fragment in android
我试图在单击项目视图时显示弹出窗口。
当弹出窗口打开时,按钮不起作用。
这是我的 onItemClick 函数:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
this.id = position;
alert.setTitle("Alert");
alert.setMessage("Souhaitez-vous modifier ou supprimer?");
alert.setView(R.layout.alert_view);
LayoutInflater inflater= LayoutInflater.from(this);
layoutAlert=(LinearLayout)inflater.inflate(R.layout.alert_view,null);
btn_supp = (Button)layoutAlert.findViewById(R.id.btn_supp_alert);
btn_modif = (Button)layoutAlert.findViewById(R.id.btn_modifier_alert);
ed_nom = (EditText)layoutAlert.findViewById(R.id.ed_nom_alert);
ed_prenom = (EditText)layoutAlert.findViewById(R.id.ed_prenom_alert);
ed_tel = (EditText)layoutAlert.findViewById(R.id.ed_tel_alert);
System.out.println(Principal.mesContacts.get(position).getNom().toString());
ed_nom.setText(Principal.mesContacts.get(position).getNom().toString());
btn_supp.setOnClickListener(this);
btn_modif.setOnClickListener(this);
alert.show();
}
这是我的 onClick 函数:
public void onClick(View v) {
if(v==btn_supp)
{
Principal.mesContacts.remove(id);
listView.invalidateViews();
}
if(v==btn_modif)
{
Principal.mesContacts.set(id,new Contact(ed_nom.getText().toString(),ed_prenom.getText().toString(),ed_tel
.getText().toString()));
listView.invalidateViews();
}
}
但是这不起作用,我不知道为什么
好的,你基本上做了以下事情:
alert.setView(R.layout.alert_view);
:
使用这行代码,您指示 AlertDialog.Builder
class 从指定的资源 R.layout.alert_view
扩展一个新布局并将其设置为 AlertDialog
的布局].
使用以下代码行,您为同一资源扩充了 新 布局。
对于此实例,您设置 OnClickListener
。但是您构建的布局从未设置为 AlertDialog.Builder
对象。
所以 AlertDialog.Builder
不知道您的布局并使用了 alert.setView(R.layout.alert_view);
指定的布局。你明白了吗?
我试图在单击项目视图时显示弹出窗口。 当弹出窗口打开时,按钮不起作用。 这是我的 onItemClick 函数:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
this.id = position;
alert.setTitle("Alert");
alert.setMessage("Souhaitez-vous modifier ou supprimer?");
alert.setView(R.layout.alert_view);
LayoutInflater inflater= LayoutInflater.from(this);
layoutAlert=(LinearLayout)inflater.inflate(R.layout.alert_view,null);
btn_supp = (Button)layoutAlert.findViewById(R.id.btn_supp_alert);
btn_modif = (Button)layoutAlert.findViewById(R.id.btn_modifier_alert);
ed_nom = (EditText)layoutAlert.findViewById(R.id.ed_nom_alert);
ed_prenom = (EditText)layoutAlert.findViewById(R.id.ed_prenom_alert);
ed_tel = (EditText)layoutAlert.findViewById(R.id.ed_tel_alert);
System.out.println(Principal.mesContacts.get(position).getNom().toString());
ed_nom.setText(Principal.mesContacts.get(position).getNom().toString());
btn_supp.setOnClickListener(this);
btn_modif.setOnClickListener(this);
alert.show();
}
这是我的 onClick 函数:
public void onClick(View v) {
if(v==btn_supp)
{
Principal.mesContacts.remove(id);
listView.invalidateViews();
}
if(v==btn_modif)
{
Principal.mesContacts.set(id,new Contact(ed_nom.getText().toString(),ed_prenom.getText().toString(),ed_tel
.getText().toString()));
listView.invalidateViews();
}
}
但是这不起作用,我不知道为什么
好的,你基本上做了以下事情:
alert.setView(R.layout.alert_view);
:
使用这行代码,您指示 AlertDialog.Builder
class 从指定的资源 R.layout.alert_view
扩展一个新布局并将其设置为 AlertDialog
的布局].
使用以下代码行,您为同一资源扩充了 新 布局。
对于此实例,您设置 OnClickListener
。但是您构建的布局从未设置为 AlertDialog.Builder
对象。
所以 AlertDialog.Builder
不知道您的布局并使用了 alert.setView(R.layout.alert_view);
指定的布局。你明白了吗?