在这里插入代码片
在这里插入代码片
package frag;
import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import com.bawei.dong.R;
import com.qy.channel.ChannelActivity;
import java.util.ArrayList;
import adapter.MyTabAdapter;
import base.BaseFragment;
/**
*/
public class Frag1 extends BaseFragment {
private TabLayout tab;
private ViewPager pager;
private ArrayList<String> tabs = new ArrayList<>();
private ArrayList<Fragment> fragments = new ArrayList<>();
private ImageView imageView;
@Override
protected int layouID() {
return R.layout.frag1;
}
@Override
protected void initView(View view) {
tab = view.findViewById(R.id.tab);
pager = view.findViewById(R.id.pager1);
imageView = view.findViewById(R.id.img1);
}
@Override
protected void initData() {
tabs.add("沪深");
tabs.add("板块");
tabs.add("指数");
tabs.add("港股");
tab.setTabMode(TabLayout.MODE_SCROLLABLE);
pager.setAdapter(new MyTabAdapter(getActivity().getSupportFragmentManager(),tabs));
tab.setupWithViewPager(pager);
//频道管理
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(),ChannelActivity.class);
startActivityForResult(intent,0);
}
});
}
}
----------------------------适配器-----------------------
package adapter;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
import frag.Item1;
/**
* Created by Yezhicheng on 2019/1/18.
*/
public class MyTabAdapter extends FragmentPagerAdapter {
private ArrayList<String> tabs;
public MyTabAdapter(FragmentManager fm, ArrayList<String> tabs) {
super(fm);
this.tabs = tabs;
}
@Override
public Fragment getItem(int i) {
//通过bundle传入它横向值
Bundle bundle = new Bundle();
bundle.putString("url",tabs.get(i));
Item1 item1 = new Item1();
item1.setArguments(bundle);
return item1;
}
@Override
public int getCount() {
return tabs.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position);
}
}
package utile;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.qy.channel.app.ChannelApplication;
/**
* Created by Yezhichengon 2019/1/18.
*/
//继承ChannelApplication
public class Img extends ChannelApplication {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(build);
}
}
------
package frag;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import com.bawei.dong.R;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import adapter.MyXlistAdapter;
import base.BaseFragment;
import bean.Datas;
import bean.Json;
import me.maxwin.view.XListView;
/**
* Created by Yezhichengon 2019/1/18.
*/
public class Item1 extends BaseFragment {
String mpath="http://api.expoon.com/AppNews/getNewsList/type/1/p/2";
private XListView xListView;
@Override
protected int layouID() {
return R.layout.item1;
}
@Override
protected void initView(View view) {
xListView = view.findViewById(R.id.xListView);
}
@Override
protected void initData() {
try {
//获取Bundle传的值
Bundle bundle = getArguments();
String url = bundle.getString("url");
switch (url) {
///不同的横向滑动给不同的接口
case "沪深":
new MyAsyncTask().execute();
mpath="http://api.expoon.com/AppNews/getNewsList/type/1/p/3";
break;
case "板块":
new MyAsyncTask().execute();
mpath="http://api.expoon.com/AppNews/getNewsList/type/1/p/4";
break;
case "指数":
new MyAsyncTask().execute();
mpath="http://api.expoon.com/AppNews/getNewsList/type/1/p/5";
break;
case "港股":
new MyAsyncTask().execute();
mpath="http://api.expoon.com/AppNews/getNewsList/type/1/p/6";
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
private class MyAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
try {
//获取地址
URL url = new URL(mpath);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//设置连接方式
urlConnection.setRequestMethod("GET");
///设置连接超时
urlConnection.setConnectTimeout(5000);
//社会组读取超时
urlConnection.setReadTimeout(5000);
//判断是否请求成功
if (urlConnection.getResponseCode() == 200) {
InputStream stream = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
StringBuilder builder = new StringBuilder();
String string = "";
while ((string = reader.readLine()) != null) {
builder.append(string);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Json fromJson = gson.fromJson(s, Json.class);
ArrayList<Datas> data = fromJson.getData();
//设置适配器
MyXlistAdapter myXlistAdapter = new MyXlistAdapter(getActivity(), data);
xListView.setAdapter(myXlistAdapter);
}
}
}
///---------------------------频道管理权限----------------------
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 震动权限 -->
<uses-permission android:name="android.permission.VIBRATE"/>
动态TabLayout
最新推荐文章于 2023-02-20 19:09:09 发布
本文详细探讨了如何在Android应用中动态创建和管理TabLayout,包括动态添加Tab页签、响应点击事件以及数据更新的处理。通过实例代码,解析了TabLayout与ViewPager的结合使用,确保在运行时能够灵活地更新Tab内容。
摘要由CSDN通过智能技术生成