您的位置:首页 > 其它

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

2016-09-28 12:26 309 查看
1,接口写在Adapter里:①:privateOnCityClickListeneronCityClickListener;//定义对象②://写接口,并定义方法,根据自己的需求定义里面的方法(这等会是在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() {@Overridepublic void onClick(View v) {if (onCityClickListener != null) {onCityClickListener.onCityClick(city);}}});
holder.name为一个可以点击的控件,当点击的时候调用接口里的方法:
onCityClickListener.onCityClick(city);
5:实例化Adapter后就可以调用Adapter里的自己的接口方法,
mCityAdapter.setOnCityClickListener(new CityListAdapter.OnCityClickListener() {@Overridepublic 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;}}}@Overridepublic void onLocateClick() {//  Log.e("onLocateClick", "重新定位...");//  mCityAdapter.updateLocateState(LocateState.LOCATING, null);// mLocationClient.startLocation();initLocation();}});
必须重写里面的方法,其实还是getView()中的方法进行触发的。
相当于是跟Adapter自定义一个方法。
其实你也可以调用Adapter系统自带的方法,看自己的需求。
---end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  回调 接口 Adapter activi
相关文章推荐