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

4.8.4 在Android 中fragment中获取上下文

2016-02-27 11:51 639 查看
View ret = inflater.inflate(R.layout.fragment_liebie,container,false);


然后 使用 ret.getContext() 就可以了。



++++++++++++++++++++++++++++++++++++++++++++++


public class LeiBieFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener, Callback<LeiBieEntity> {
private LeiBieAdapter adapter;
private ImageView refresh;
private final static int REFRESH=1;
private SwipeRefreshLayout swipeRefreshLayout;//下拉刷新
private Handler handler;
private ProgressBar progressBar;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View ret = inflater.inflate(R.layout.fragment_liebie,container,false);

//获取recyclerView,并且设置adapter
RecyclerView recyclerView = (RecyclerView) ret.findViewById(R.id.leibie_recycleView);
adapter = new LeiBieAdapter(ret.getContext(),new ArrayList<LeiBieEntity.DataEntity.ReturnDataEntity.RankinglistEntity>());
recyclerView.setAdapter(adapter);

//获取progressBar
progressBar = (ProgressBar) ret.findViewById(R.id.leibie_progressbars);

//初始化主线程的handler,为了防止第一次加载的时候有问题,将这个 加载设置为可以刷新的
handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case REFRESH:
run();
break;
}
}
};

Message message = new Message();
message.what=REFRESH;
handler.sendMessage(message);

//获取下拉刷新的组建SwipeRefreshLayout,并且设置监听方法
swipeRefreshLayout= (SwipeRefreshLayout)ret.findViewById(R.id.leibie_swiperefreshlayout);
swipeRefreshLayout.setOnRefreshListener(this);
return ret;
}

//handler 里面调用的方法,就是通过HttpUtils请求网络数据,
public void run(){
HttpUtils.getLeiBieService().getLeiBie(1446).enqueue(this);
}

//HttpUtils请求成功后进行的处理,包括,将ProgressBar 设置不现实,将下拉刷新停止回收回去
//更新adapter的数据,从而更新recyclerView
@Override
public void onResponse(Response<LeiBieEntity> response, Retrofit retrofit) {
//将ProgressBar 设置不现实,将下拉刷新停止回收回去
progressBar.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(false);

//获取返回的数据,将该数据更新到adapter 中去,
LeiBieEntity.DataEntity data = response.body().getData();
List<LeiBieEntity.DataEntity.ReturnDataEntity.RankinglistEntity> rankinglist = data.getReturnData().getRankinglist();
adapter.addAll(rankinglist);
}

//网络请求失败
@Override
public void onFailure(Throwable t) {

progressBar.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(false);

t.printStackTrace();
Toast.makeText(getContext(),"网络调皮了",Toast.LENGTH_LONG).show();
}

//下拉刷新的时候执行,给主线程的handler传递一个message
@Override
public void onRefresh() {
Message message = new Message();
message.what=REFRESH;
handler.sendMessage(message);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: