Android 单击ListViewFragment的按钮
我有一个片段,它扩展了使用自定义适配器的ListFragmentAndroid 单击ListViewFragment的按钮,android,listview,onclicklistener,android-listfragment,Android,Listview,Onclicklistener,Android Listfragment,我有一个片段,它扩展了使用自定义适配器的ListFragment 列表视图的每一行都有一个按钮,我知道在适配器中 getViewmethod我可以为按钮设置一个侦听器,如下所示: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; //View lookup cached stored in tag. if(convert
列表视图的每一行
都有一个按钮
,我知道在适配器中
getView
method我可以为按钮设置一个侦听器,如下所示:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder; //View lookup cached stored in tag.
if(convertView == null){
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.pay_debit_credit_item, parent, false);
viewHolder.makePayment = (Button) convertView.findViewById(R.id.paymentButton);
viewHolder.makePayment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "Hellooo", Toast.LENGTH_SHORT).show();
}
});
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
//...
//Return view to be rendered.
return convertView;
}
这很好,但是如何通知正在使用此适配器的片段位置x的按钮已被单击?首先创建一个界面:
public interface IClickListener {
public void clicked(View view,int position);
}
然后在适配器类中实例化它:
IClickListener clicListener;
public ListAdapterConstructor(Context context, Cursor c,IClickListener listener) {
super(context, c);
mContext = context;
this.clicListener = listener;
}
在为按钮单击事件时设置的getView方法中:
viewHolder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
clicListener.clicked(v,po);
}
});
并至少更改片段以实现事件侦听器:
public class YourFragment extends Fragment implements IClickListener {
首先创建一个接口:
public interface IClickListener {
public void clicked(View view,int position);
}
然后在适配器类中实例化它:
IClickListener clicListener;
public ListAdapterConstructor(Context context, Cursor c,IClickListener listener) {
super(context, c);
mContext = context;
this.clicListener = listener;
}
在为按钮单击事件时设置的getView方法中:
viewHolder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
clicListener.clicked(v,po);
}
});
并至少更改片段以实现事件侦听器:
public class YourFragment extends Fragment implements IClickListener {
你应该看看这个你应该看看这个啊。。我一直在为片段到活动的交互使用接口,但没有为适配器到片段的交互使用接口连接点。非常感谢。啊。。我一直在为片段到活动的交互使用接口,但没有为适配器到片段的交互使用接口连接点。非常感谢。