常用知识Android技术知识Android开发

Android开发中接口的用处

2017-07-11  本文已影响0人  轻轻笑声

本篇文章送给Android的初学者.
一.场景一:
某activity或fragment是一个较复杂的界面,假设其中含有一个列表和列表外其他控件组成.现在有一个需求就是点击列表条目,去改变列表外其他控件的UI.那么此时使用接口是一个不错的选择:
1)首先无论是listview还是recyclerview,在adapter中定义一个接口
例:

 public interface MyClickListener{
        void clickListener();
    }

2)adapter中声明该接口

private MyClickListener mListener;

3)adapter的构造方法中传入改接口

 public ContactAdapter(Context context,AbsListView view, ArrayList<Contact> mDatas, MyClickListener listener) {
        super(view, mDatas, R.layout.item_list_contact);
        mContext = context;
        datas = mDatas;
        if (datas == null) {
            datas = new ArrayList<>();
        }
        Collections.sort(datas);
        mListener = listener;
    }

4)item的点击事件中可以调用

mListener .clickListener();

5)在看fragment类:
首先 fragment实现MyClickListener接口,重写clickListener方法;

public class fragment implements ContactAdapter.MyClickListener {
 @Override
    public void clickListener() {
        refresh();
    }
}

然后 new adapter构造方法中传入this接口.
mAdapter = new ContactAdapter(getActivity(),mListView, list,this);
最后 clickListener方法中 调用逻辑代码(refresh())刷新界面.

 @Override
    public void clickListener() {
        refresh();
    }

二.场景二:
mainactivity中有n个fragment.要点击一个fragment3中的按钮,刷新另一个fragment2的UI,此时接口又是一个不做的选择.Mainactivity是这些fragment的共同载体.
1)首先 fragment3中 定义一个接口 并 声明

private CleanChatListener listener;
 public interface CleanChatListener {
        void CleanChat();   //参数为用户需要传递的数据内容,这里我用的是一个Component对象
 }

2)onCreateView方法中初实例化该接口
//实例化该接口

        listener = (CleanChatListener)getActivity();
  1. 点击事件或其他事件中调用:
listener.CleanChat();

4)在来看mainactivity
首先 mainactivity实现该接口,然后重写CleanChat方法,CleanChat方法中调用fragment2中的刷新方法.

public class MainActivity extends BaseActivity implements AccountFragment.CleanChatListener {
 @Override
    public void CleanChat() {
        fragment2.refresh();
    }
}

ok,就到这里了.本篇文章就是写给java基础薄弱的android初级开发者.因为作者也曾经是一个初级开发者,java基础不强,希望对大家有所帮助!

上一篇下一篇

猜你喜欢

热点阅读