package com.yuyh.sprintnba.ui.fragment; import android.os.Bundle; import android.widget.ListView; import android.widget.TextView; import com.yuyh.sprintnba.R; import com.yuyh.sprintnba.base.BaseLazyFragment; import com.yuyh.sprintnba.event.RefreshCompleteEvent; import com.yuyh.sprintnba.event.RefreshEvent; import com.yuyh.sprintnba.http.bean.match.MatchStat; import com.yuyh.sprintnba.ui.adapter.MatchPlayerDataAdapter; import com.yuyh.sprintnba.ui.presenter.Presenter; import com.yuyh.sprintnba.ui.presenter.impl.MatchPlayerDataPresenter; import com.yuyh.sprintnba.ui.view.MatchPlayerDataView; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; /** * @author yuyh. * @date 2016/7/5. */ public class MatchPlayerDataFragment extends BaseLazyFragment implements MatchPlayerDataView { @InjectView(R.id.tvPlayerDataLeft) TextView tvPlayerDataLeft; @InjectView(R.id.lvPlayerDataLeft) ListView lvPlayerDataLeft; @InjectView(R.id.tvPlayerDataRight) TextView tvPlayerDataRight; @InjectView(R.id.lvPlayerDataRight) ListView lvPlayerDataRight; private Presenter presenter; private List<MatchStat.PlayerStats> left = new ArrayList<>(); private List<MatchStat.PlayerStats> right = new ArrayList<>(); private MatchPlayerDataAdapter leftAdapter; private MatchPlayerDataAdapter rightAdapter; public static MatchPlayerDataFragment newInstance(String mid) { Bundle args = new Bundle(); args.putString("mid", mid); MatchPlayerDataFragment fragment = new MatchPlayerDataFragment(); fragment.setArguments(args); return fragment; } @Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); setContentView(R.layout.fragment_match_player_data); EventBus.getDefault().register(this); initData(); } private void initData() { leftAdapter = new MatchPlayerDataAdapter(left, mActivity); lvPlayerDataLeft.setAdapter(leftAdapter); rightAdapter = new MatchPlayerDataAdapter(right, mActivity); lvPlayerDataRight.setAdapter(rightAdapter); presenter = new MatchPlayerDataPresenter(mActivity, this, getArguments().getString("mid")); presenter.initialized(); } @Override public void showLoading(String msg) { showLoadingDialog(); } @Override public void hideLoading() { hideLoadingDialog(); } @Override public void showError(String msg) { hideLoading(); } @Override public void showPlayerData(List<MatchStat.PlayerStats> playerStatses) { boolean isLeft = false; boolean isRight = false; left.clear(); right.clear(); for (MatchStat.PlayerStats item : playerStatses) { if (item.subText != null && !isLeft) { isLeft = true; tvPlayerDataLeft.setText(item.subText); } else if (item.subText != null && isLeft) { isRight = true; tvPlayerDataRight.setText(item.subText); } else { if (isRight) { right.add(item); } else { left.add(item); } } } leftAdapter.notifyDataSetChanged(); rightAdapter.notifyDataSetChanged(); hideLoading(); } @Subscribe public void onEventMainThread(RefreshEvent event) { EventBus.getDefault().post(new RefreshCompleteEvent()); } @Override protected void onDestroyViewLazy() { super.onDestroyViewLazy(); EventBus.getDefault().unregister(this); } }