Android 接口回调
2014-08-25 18:07
288 查看
1.定义接口(interface)
a.在操作的class里面写一个接口:
b.声明回调接口对象
c.执行回调方法
调用接口函数吧,让需要响应的Activity执行接口方法(onLoad(){};)-_-#
2.实现接口(implements)
a.在需要响应的Activity里实现接口,并重写接口函数:
3.源代码:
MainActivity.java:
MyListView.java:
a.在操作的class里面写一个接口:
<span style="white-space:pre"> </span>// 回调接口(监听器) public interface loadListener { public void onLoad(); }
b.声明回调接口对象
<span style="white-space:pre"> </span>//声明回调接口的对象 <span style="white-space:pre"> </span>private loadListener listener;
c.执行回调方法
调用接口函数吧,让需要响应的Activity执行接口方法(onLoad(){};)-_-#
<span style="white-space:pre"> </span>listener = (loadListener) context;//在调用回调函数之前给其赋值 <span style="white-space:pre"> </span>footer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.onLoad();//实现回调的功能 } });
2.实现接口(implements)
a.在需要响应的Activity里实现接口,并重写接口函数:
public class MainActivity extends Activity implements loadListener { <span style="white-space:pre"> </span>//接口方法,中间省略若干行代码 @Override public void onLoad() { arr.add("new"); adpter.notifyDataSetChanged(); } }
3.源代码:
MainActivity.java:
public class MainActivity extends ActionBarActivity implements loadListener { MyListView lv; ArrayList<String> arr; ArrayAdapter<String> adpter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (MyListView) findViewById(R.id.listView1); arr = new ArrayList<>(); for (int i = 0; i < 10; i++) { arr.add(i + ""); } adpter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arr); lv.setAdapter(adpter); } <span style="white-space:pre"> </span>//重写接口方法 @Override public void onLoad() { arr.add("new"); adpter.notifyDataSetChanged(); } }
MyListView.java:
public class MyListView extends ListView { private View footer; private loadListener listener; public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); initView(context); } public MyListView(Context context) { super(context); initView(context); } @SuppressWarnings("unused") private void initView(Context context) { listener = (loadListener) context;//在调用回调函数之前给其赋值 LayoutInflater inflater = LayoutInflater.from(context); footer = inflate(context, R.layout.lv_footer, null); this.addFooterView(footer); footer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.onLoad(); } }); } // 回调接口(监听器) public interface loadListener { public void onLoad(); } }
相关文章推荐
- 接口回调 ( android 应用实现)
- Android中回调接口的使用
- Android 回调接口
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
- [待修改]java接口用法:向上转型和回调函数 回调机制在 Android 监听用户界面操作中的体现
- Android 中的接口回调
- Android 中的接口回调
- Android之图文混排(三)接口的回调
- 浅谈Android中用接口完美实现回调的逻辑控制
- 解决Android中调用百度地图MKSearchListener接口回调方法不执行的问题
- Android中回调接口使用实例
- android.graphics.drawable.Drawable.Callback回调接口
- Android 接口回调机制详解
- Android 中的接口回调
- android-百度地图BDLocationListener接口未回调 - 随心
- Android中回调接口的使用
- Android 中的接口回调
- Android 接口回调机制应用
- 弄明白Android 接口回调机制