HorizontalScrollView与 radioButton 连用

来源:互联网 发布:js设置span标签隐藏 编辑:程序博客网 时间:2024/05/17 04:56

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>();@Overridepublic 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;}@Overridepublic 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));            }        }    });}

}

原创粉丝点击