//MainActivity
package studio_day9.com.studio_week2;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
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.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import java.util.ArrayList;
import fragment.ShiFragment;
import fragment.ShouFragment;
import fragment.WoFragment;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ViewPager view_page;
private RadioGroup radio_group;
private String path="http://www.xieast.com/api/news/news.php?page=1";
private ArrayList<Fragment> list;
private DrawerLayout drawer_layout;
private LinearLayout left_side;
private Button sbtn1;
private Button sbtn2;
private Button sbtn3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view_page = findViewById(R.id.view_page);
radio_group = findViewById(R.id.radio_group);
drawer_layout = findViewById(R.id.drawer_layout);
left_side = findViewById(R.id.left_side);
sbtn1 = findViewById(R.id.sbtn1);
sbtn2 = findViewById(R.id.sbtn2);
sbtn3 = findViewById(R.id.sbtn3);
list=new ArrayList<>();
list.add(new ShouFragment());
list.add(new ShiFragment());
list.add(new WoFragment());
MyAdapter adapter=new MyAdapter(getSupportFragmentManager());
view_page.setAdapter(adapter);
view_page.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
radio_group.check(radio_group.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.btn1:
view_page.setCurrentItem(0,false);
break;
case R.id.btn2:
view_page.setCurrentItem(1,false);
break;
case R.id.btn3:
view_page.setCurrentItem(2,false);
break;
}
}
});
sbtn1.setOnClickListener(this);
sbtn2.setOnClickListener(this);
sbtn3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sbtn1:
view_page.setCurrentItem(0,false);
drawer_layout.closeDrawers();
break;
case R.id.sbtn2:
view_page.setCurrentItem(1,false);
drawer_layout.closeDrawers();
break;
case R.id.sbtn3:
view_page.setCurrentItem(2,false);
drawer_layout.closeDrawers();
break;
}
}
private class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
}
}
//ShouFragment
package fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import bean.BeanNews;
import studio_day9.com.studio_week2.R;
import xlistview.XListView;
public class ShouFragment extends Fragment implements XListView.IXListViewListener {
private XListView xlist_view;
private Gson gson;
private List<BeanNews.DataBean> data;
private int page=1;
private MyAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.shou_layout, container, false);
xlist_view = view.findViewById(R.id.xlist_view);
xlist_view.setXListViewListener(this);
xlist_view.setPullLoadEnable(true);
xlist_view.setPullRefreshEnable(true);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
creat();
}
private void creat() {
new MyAsyncTask().execute();
}
@Override
public void onRefresh() {
page=1;
new Runnable() {
@Override
public void run() {
creat();
adapter.notifyDataSetChanged();
}
}.run();
refresh();
}
@Override
public void onLoadMore() {
page++;
new Runnable() {
@Override
public void run() {
creat();
adapter.notifyDataSetChanged();
}
}.run();
refresh();
}
private void refresh() {
xlist_view.stopLoadMore();
xlist_view.stopRefresh();
}
private class MyAsyncTask extends AsyncTask<Integer,Integer,String>{
private String path="http://www.xieast.com/api/news/news.php?page="+page+"";
@Override
protected String doInBackground(Integer... integers) {
String messages="";
try {
URL url=new URL(path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
if (urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[1024 * 512];
int len=0;
while ((len=inputStream.read(bytes))>-1){
outputStream.write(bytes,0,len);
}
messages=outputStream.toString();
inputStream.close();
urlConnection.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
return messages;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s!=null) {
gson = new Gson();
BeanNews beanNews = gson.fromJson(s, BeanNews.class);
data = beanNews.getData();
if (data != null) {
adapter = new MyAdapter();
xlist_view.setAdapter(adapter);
}
}
}
}
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup pajrent) {
ViewHolder viewHolder;
if (convertView==null){
convertView = View.inflate(getContext(),R.layout.item,null);
viewHolder=new ViewHolder();
viewHolder.text1 = convertView.findViewById(R.id.text1);
viewHolder.text2 = convertView.findViewById(R.id.text2);
viewHolder.image1=convertView.findViewById(R.id.image1);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.text1.setText(data.get(position).getAuthor_name());
viewHolder.text2.setText(data.get(position).getDate());
ImageLoader.getInstance().displayImage(data.get(position).getThumbnail_pic_s(),viewHolder.image1);
return convertView;
}
class ViewHolder{
TextView text1,text2;
ImageView image1;
}
}
}
//appliction
package studio_day9.com.studio_week2;
import android.app.Application;
import android.graphics.Bitmap;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
public class apption extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this)
.defaultDisplayImageOptions(options())
.build();
ImageLoader.getInstance().init(build);
}
private DisplayImageOptions options(){
return new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher_background)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher_foreground)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.ARGB_8888) //设置图片的解码类型
//.displayer(new RoundedBitmapDisplayer(20))//圆角图片
.displayer(new CircleBitmapDisplayer())//圆形图片
.build();
}
}