activity_main.xml布局
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:id="@+id/dl_root"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=“com.example.lenovo.a06moni01.MainActivity”>
<RelativeLayout
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
>
<LinearLayout
android:id="@+id/bottom"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/shouye"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1"
android:text="首页"
/>
<TextView
android:id="@+id/redian"
android:layout_width="0dp"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="热点"
/>
<TextView
android:id="@+id/wode"
android:layout_width="0dp"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="我的"
/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_above="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></android.support.v4.view.ViewPager>
MainActivity页面实现fragment
package com.example.lenovo.a06moni01;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.example.lenovo.a06moni01.fragment.RedianFragment;
import com.example.lenovo.a06moni01.fragment.ShouyeFragment;
import com.example.lenovo.a06moni01.fragment.WodeFragment;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private DrawerLayout dl_root;
private ListView list_drawer;
private List list;
private TextView Shouye;
private TextView Redian;
private TextView Wode;
private ViewPager Vp;
private List listf;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dl_root=findViewById(R.id.dl_root);
list_drawer=findViewById(R.id.list_drawer);
Shouye=findViewById(R.id.shouye);
Redian=findViewById(R.id.redian);
Wode=findViewById(R.id.wode);
Vp=findViewById(R.id.vp);
//抽屉的数据
list=new ArrayList<>();
list.add(“我的会员”);
list.add(“我的消息”);
list.add(“我的新闻”);
//fragment的数据
listf=new ArrayList<>();
listf.add(new ShouyeFragment());
listf.add(new RedianFragment());
listf.add(new WodeFragment());
Shouye.setOnClickListener(this);
Redian.setOnClickListener(this);
Wode.setOnClickListener(this);
Vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return listf.get(position);
}
@Override
public int getCount() {
return listf.size();
}
});
list_drawer.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,list));
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.shouye:
Vp.setCurrentItem(0);
break;
case R.id.redian:
Vp.setCurrentItem(1);
break;
case R.id.wode:
Vp.setCurrentItem(2);
break;
}
}
}
fragment_shouye.xml的布局 实现tablayout 和轮播 显示页面
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout
android:id="@+id/tab_title"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/lunbo_vp"
android:layout_width="400dp"
android:layout_height="200dp"></android.support.v4.view.ViewPager>
<android.support.v4.view.ViewPager
android:id="@+id/vp_news"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.v4.view.ViewPager>
shouyefragment实现tablayout 和轮播
package com.example.lenovo.a06moni01.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.lenovo.a06moni01.R;
import java.util.ArrayList;
import java.util.List;
/**
- Created by lenovo on 2018-10-24.
*/
public class ShouyeFragment extends Fragment{
private TabLayout tab_Title;
private ViewPager vp_News;
private ViewPager lunbo_vp;
private List imglist;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_shou, null, false);
tab_Title= v.findViewById(R.id.tab_title);
vp_News= v.findViewById(R.id.vp_news);
lunbo_vp=v.findViewById(R.id.lunbo_vp);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final List<String> list=new ArrayList<>();
list.add("娱乐");
list.add("音乐");
list.add("体育");
list.add("新闻");
list.add("美食");
list.add("经济");
list.add("旅游");
List<String> url=new ArrayList<>();
url.add("yu");
url.add("yin");
url.add("ti");
url.add("xin");
url.add("mei");
url.add("jing");
url.add("lv");
final List<Fragment> fragments=new ArrayList<>();
for (int i = 0; i <url.size() ; i++) {
NewsFragment fragment=new NewsFragment();
Bundle bundle=new Bundle();
bundle.putString("url",url.get(i));
fragment.setArguments(bundle);
fragments.add(fragment);
}
tab_Title.setTabMode(TabLayout.MODE_SCROLLABLE);
vp_News.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
});
tab_Title.setupWithViewPager(vp_News);
imglist=new ArrayList<>();
imglist.add(R.mipmap.lunb);
imglist.add(R.mipmap.lunbb);
imglist.add(R.mipmap.lunbbb);
lunbo_vp.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return imglist.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView img=new ImageView(getActivity());
img.setImageResource(imglist.get(position));
container.addView(img);
return img;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
});
handler.sendEmptyMessageDelayed(1,2000);
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==1){
int curren=lunbo_vp.getCurrentItem();
if (curren<imglist.size()-1){
curren++;
}else{
curren=0;
}
lunbo_vp.setCurrentItem(curren);
sendEmptyMessageDelayed(1,2000);
}
}
};
}
实现显示数据页面的布局
<?xml version="1.0" encoding="utf-8"?>
<com.bwie.xlistview.XListView
android:id="@+id/list_view"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”></com.bwie.xlistview.XListView>
NewsFragment页面实现显示数据代码 +点击事件
package com.example.lenovo.a06moni01.fragment;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.bwie.xlistview.XListView;
import com.example.lenovo.a06moni01.HttpUtils;
import com.example.lenovo.a06moni01.News;
import com.example.lenovo.a06moni01.NewsAdapter;
import com.example.lenovo.a06moni01.R;
import com.example.lenovo.a06moni01.ShowActivity;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
/**
- Created by lenovo on 2018-10-24.
*/
public class NewsFragment extends Fragment{
public static final String url=“http://www.xieast.com/api/news/news.php?page=”;
private int page=1;
private String newsurl;
private XListView listView;
private List<News.DataBean> list;
private NewsAdapter adapter;
private Handler handler=new Handler();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.item_news, null, false);
listView= v.findViewById(R.id.list_view);
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle=getArguments();
newsurl=bundle.getString("url");
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
list=new ArrayList<>();
adapter=new NewsAdapter(getContext(),list);
listView.setAdapter(adapter);
listView.setPullRefreshEnable(true);
listView.setPullLoadEnable(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(getContext(), ShowActivity.class);
String sc=list.get(position).getUrl();
intent.putExtra("sc",sc);
startActivity(intent);
}
});
listView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
getdata(page,true);
}
@Override
public void onLoadMore() {
page++;
getdata(page,false);
}
});
getdata(page,false);
}
private void getdata(int page,final boolean b) {
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
return HttpUtils.getInputHttp(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
News news=gson.fromJson(s,News.class);
if (news!=null){
List<News.DataBean> data=news.getData();
if (data!=null){
if (!b){
list.clear();
}
list.addAll(data);
adapter.notifyDataSetChanged();
}
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (b){
listView.stopLoadMore();
}else{
listView.stopRefresh();
listView.setRefreshTime("刚刚");
}
}
},2000);
}
}.execute(url+page);
}
}
点击过去的接受页面布局
<?xml version="1.0" encoding="utf-8"?>ShowActivity接受页面代码
package com.example.lenovo.a06moni01;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class ShowActivity extends AppCompatActivity {
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
wv=findViewById(R.id.wv);
Intent intent=getIntent();
String con=intent.getStringExtra(“sc”);
wv.loadUrl(con);
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
});
}
}
httputils
package com.example.lenovo.a06moni01;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
- Created by lenovo on 2018-10-24.
*/
public class HttpUtils {
public static String getInputHttp(String urlString){
String result="";
try {
URL url=new URL(urlString);
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
connection.setRequestMethod(“GET”);
connection.setUseCaches(true);
connection.setDoInput(true);
connection.setDoOutput(false);
connection.connect();
if (connection.getResponseCode()==200){
InputStream is=connection.getInputStream();
result=getInputStream(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
private static String getInputStream(InputStream is) {
String result="";
try {
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int lenght=-1;
byte[] buffer=new byte[1024];
while ((lenght=is.read(buffer,0,buffer.length))!=-1){
baos.write(buffer,0,lenght);
baos.flush();
}
result=baos.toString();
baos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}