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)); } } });}
}
- HorizontalScrollView与 radioButton 连用
- typedef 与 指针连用
- typedef与指针连用
- typedef 与 指针连用
- RadioButton和HorizontalScrollView实现分类标签
- RadioButton与自定义RadioButton
- Update、Delete 与Join连用
- max与group by连用
- 关于viewpager与fragment连用
- ScrollView与HorizontalScrollView
- HorizontalScrollView与ViewPager联动
- RadioButton组也可通过添加上HorizontalScrollView 实现左右滑动
- 【android】RadioGroup+RadioButton+HorizontalScrollview实现顶部横向菜单栏
- RadioButton组也可通过添加上HorizontalScrollView 实现左右滑动
- HorizontalScrollView组合RadioGroup,实现点击RadioButton时自动滚动
- EF与Stored Proc 连用 Collection
- 单链表typedef struct与指针连用
- Java Synchronized与wait notify 连用
- 对比svn两个不同分支目录的文件
- c++11自定义线程池
- Linux操作系统4.5.6.7代差别
- Java类加载流程
- 深入理解阻塞队列(一)——基本结构
- HorizontalScrollView与 radioButton 连用
- Linux之文件权限、用户管理
- 解题报告:HDU_6053 TrickGCD 莫比乌斯反演
- 深入理解JVM之四:详解垃圾收集器
- font-size:0的作用
- String类——练习(3)
- httpUtils工具类
- Ubuntu 16.04下安装64位谷歌Chrome浏览器
- centos 7 Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work