import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.itheima.retrofitutils.ItheimaHttp;
import com.itheima.retrofitutils.Request;
import com.itheima.retrofitutils.listener.HttpResponseListener;
import java.util.ArrayList;
import java.util.List;
import adapter.OnlineFragmentAdapter;
import client.android.psy4.ruige.mheip.R;
import okhttp3.Headers;
import widget.ExpandView;
/**
* Created by dell on 2017/6/15.
*/
public class NewsFragment extends Fragment {
private View mView;
private ExpandView mExpandView;
private ImageView mImageView;
private String tokenId;
private List<String> newsTitle = new ArrayList<>();
private ViewPager viewPager;
private RadioGroup mRadioGroup;
private HorizontalScrollView mHorizontalScrollView;
private OnlineFragmentAdapter adapter = null;
private List<Fragment> fragmentList = new ArrayList<Fragment>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
tokenId = getArguments().getString("tokenId");
}
}
public static NewsFragment newInstance(String token) {
Bundle args = new Bundle();
args.putString("tokenId", token);
NewsFragment fragment = new NewsFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
if (mView == null) {
mView = inflater.inflate(R.layout.fragment_news, container, false);
mRadioGroup = (RadioGroup) mView.findViewById(R.id.rgChannel);
// viewPager = (ViewPager) mView.findViewById(R.id.vpNewsList);
mHorizontalScrollView = (HorizontalScrollView) mView.findViewById(R.id.hvChannel);
Request request = ItheimaHttp.newPostRequest("getArticleClassList.do")
.putParams("tokenId", tokenId);
retrofit2.Call call = ItheimaHttp.send(request, new HttpResponseListener<String>() {
@Override
public void onResponse(String s, Headers headers) {
//幕
Display d = getActivity().getWindowManager().getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
d.getMetrics(dm);
final int screenHalf = d.getWidth() / 2;//屏幕宽度的一半
//拿到数组
JsonObject jsonObject = new JsonParser().parse(s).getAsJsonObject();
JsonArray jsonArray = jsonObject.getAsJsonArray("articleClasses");
for (int k = 0; k < jsonArray.size(); k++) {
JsonObject oj = (JsonObject) jsonArray.get(k);
String names = String.valueOf(oj.get("className")).replace("\"", "");
// for (int k = 0; k < jsonArray.size() + 1; k++) {
//
//
// if (k == 0) {
//
// newsTitle.add(“全部”);
//
//
// } else {
// JsonObject oj = (JsonObject) jsonArray.get(k - 1);
//
// String names = String.valueOf(oj.get(“className”)).replace(“\”“, “”);
//
// newsTitle.add(names);
//
//
// }
RadioButton rb = new RadioButton(getActivity());
rb.setText(names);
rb.setGravity(Gravity.CENTER);
rb.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));
//根据需要设置显示初始标签的个数,这里显示5个
// rb.setLayoutParams(new ViewGroup.LayoutParams((int) (screenHalf /6), ViewGroup.LayoutParams.FILL_PARENT));
// rb.setBackgroundResource(R.drawable.radiobutton_bg_selector);
RadioGroup.LayoutParams params = new
RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT,
RadioGroup.LayoutParams.WRAP_CONTENT);
mRadioGroup.addView(rb, params);
rb.setTextColor(getActivity().getResources().getColorStateList(R.color.blue));
}
//设置初始check对象(第一个索引从0开始)
((RadioButton) mRadioGroup.getChildAt(0)).setChecked(true);
//监听check对象
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int RadiobuttonId = group.getCheckedRadioButtonId();
//获取radiobutton对象
RadioButton bt = (RadioButton) group.findViewById(RadiobuttonId);
//获取单个对象中的位置
int index = group.indexOfChild(bt);
//设置滚动位置,可使点击radiobutton时,将该radiobutton移动至第二位置
mHorizontalScrollView.smoothScrollTo(bt.getLeft() - (int) (screenHalf / 4), 0);
// item_check_ID = index;
}
});
//在mHorizontalScrollView加载mRadioGroup布局
mHorizontalScrollView.addView(mRadioGroup);
}
});
initView();
}
return mView;
}
private void initView() {
mImageView = (ImageView) mView.findViewById(R.id.imageview_state);
mExpandView = (ExpandView) mView.findViewById(R.id.expandView);
mExpandView.setContentView();
mImageView.setClickable(true);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mExpandView.isExpand()) {
mExpandView.collapse();
// mTextView.setText("点击向下展开");
mImageView.setImageDrawable(getResources().getDrawable(R.mipmap.up));
} else {
mExpandView.expand();
// mTextView.setText("点击向上收叠");
mImageView.setImageDrawable(getResources().getDrawable(R.drawable.down));
}
}
});
}
}