您的位置:首页 > 移动开发 > Android开发

自定义Adapter的接口,方便回调。Adapter与Activity之间的回调

2017-04-29 15:39 447 查看
1,接口写在Adapter里:
①:private OnCityClickListener onCityClickListener;//定义对象

②://写接口,并定义方法,根据自己的需求定义里面的方法(这等会是在adapter里实现的,在Activity里调用)
public interface OnCityClickListener {
void onCityClick(String name);

void onLocateClick();
}


3:

public void setOnCityClickListener(OnCityClickListener listener) {
this.onCityClickListener = listener;
}
4:在Adapter,的getView()方法里需要点击的地方调用
holder.name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onCityClickListener != null) {
onCityClickListener.onCityClick(city);
}
}
});
holder.name为一个可以点击的控件,当点击的时候调用接口里的方法:
onCityClickListener.onCityClick(city);
5:实例化Adapter后就可以调用Adapter里的自己的接口方法,
mCityAdapter.setOnCityClickListener(new CityListAdapter.OnCityClickListener() {
@Override
public void onCityClick(String name) {
//back(name);
//回调数据使用
for (int i = 0; i < list_city2.size(); i++) {
if (name.equals(list_city2.get(i).getName())) {
City c = list_city2.get(i);
Intent intent_city = new Intent();
intent_city.putExtra("city_name", c.getName());
intent_city.putExtra("carory", c.getCarorg());
intent_city.putExtra("lsprefix", c.getLsprefix());
setResult(101, intent_city);
finish();
break;
}
}
}

@Override
public void onLocateClick() {
//  Log.e("onLocateClick", "重新定位...");
//  mCityAdapter.updateLocateState(LocateState.LOCATING, null);
// mLocationClient.startLocation();
initLocation();
}
});
必须重写里面的方法,其实还是getView()中的方法进行触发的。
相当于是跟Adapter自定义一个方法。
其实你也可以调用Adapter系统自带的方法,看自己的需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android
相关文章推荐