上拉加载,下拉刷新,多条目,侧滑,轮播
接口
http://172.17.8.100/mobile/exam/findNewList
https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1
===================================MainActivity============================================
public class MainActivity extends AppCompatActivity {
private DrawerLayout dw;
private PullToRefreshListView pulltorefresh;
private ImageView img;
private List<news.ResultBean.DataBean> list = new ArrayList<>();
//private List<news.DataBean> list = new ArrayList<>();
private String spec = "http://172.17.8.100/mobile/exam/findNewList";
// private int page = 1;
//private MyAdapter MyAdapter;
private com.example.dell.chenlin_0822.Adapter.MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dw = findViewById(R.id.dw);
pulltorefresh = findViewById(R.id.pulltorefresh);
img = findViewById(R.id.img);
getfromMid();
getfromnewwork();
pulltorefresh.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
news.ResultBean.DataBean bean = (news.ResultBean.DataBean) parent.getAdapter().getItem(position);
Intent intent = new Intent(MainActivity.this, Show.class);
intent.putExtra("url", bean.getUrl());
startActivity(intent);
}
});
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dw.openDrawer(Gravity.LEFT);
}
});
}
private void getfromMid() {
pulltorefresh.setMode(PullToRefreshBase.Mode.BOTH);
pulltorefresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
// page = 1;
getfromnewwork();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
// page += 1;
getfromnewwork();
}
});
myAdapter = new MyAdapter(list, MainActivity.this);
pulltorefresh.setAdapter(myAdapter);
}
private void getfromnewwork() {
//String url = spec + page;
HttpUtils httputils = HttpUtils.getinstance();
httputils.getdata(spec);
httputils.setGetjson(new HttpUtils.getjson() {
@Override
public void data(String json) {
Gson gson = new Gson();
news news = gson.fromJson(json, news.class);
List<news.ResultBean.DataBean> data = news.getResult().getData();
// if (page == 1) {
// list.clear();
// }
list.addAll(data);
// MyAdapter.notifyDataSetChanged();
// pulltorefresh.onRefreshComplete();
}
});
}
}
===================================Adapter============================================
public class MyAdapter extends BaseAdapter{
private final int ONE_ITEM=0;
private final int TWO_ITEM=1;
private List<news.ResultBean.DataBean> list;
private Context context;
public MyAdapter(List<news.ResultBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
String thumbnail_pic_s = list.get(position).getThumbnail_pic_s();
String thumbnail_pic_s02 = list.get(position).getThumbnail_pic_s02();
String thumbnail_pic_s03 = list.get(position).getThumbnail_pic_s03();
if(thumbnail_pic_s !=null && thumbnail_pic_s02 == null && thumbnail_pic_s03 ==null){
return ONE_ITEM;
}else if(thumbnail_pic_s !=null && thumbnail_pic_s02 != null && thumbnail_pic_s03 != null) {
return TWO_ITEM;
}
return ONE_ITEM;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int i = getItemViewType(position);
if(i==0){
ViewHolderOne holderOne;
if(convertView==null){
convertView = View.inflate(context, R.layout.one_item, null);
holderOne = new ViewHolderOne();
holderOne.text_name=convertView.findViewById(R.id.text_name);
holderOne.text_news=convertView.findViewById(R.id.text_news);
holderOne.img_iew=convertView.findViewById(R.id.img_iew);
convertView.setTag(holderOne);
}else{
holderOne = (ViewHolderOne) convertView.getTag();
}
holderOne.text_name.setText(list.get(position).getTitle());
holderOne.text_news.setText(list.get(position).getAuthor_name());
DisplayImageOptions options = ImageLoaderUtils.getOptions();
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holderOne.img_iew);
return convertView;
}else{
ViewHolderTwo holderTwo;
if(convertView==null){
convertView = View.inflate(context, R.layout.two_item, null);
holderTwo = new ViewHolderTwo();
holderTwo.text_name02=convertView.findViewById(R.id.text_name02);
holderTwo.text_news02=convertView.findViewById(R.id.text_news02);
holderTwo.img_view01=convertView.findViewById(R.id.img_view01);
holderTwo.img_view02=convertView.findViewById(R.id.img_view02);
holderTwo.img_view03=convertView.findViewById(R.id.img_view03);
convertView.setTag(holderTwo);
}else{
holderTwo = (ViewHolderTwo) convertView.getTag();
}
holderTwo.text_name02.setText(list.get(position).getTitle());
holderTwo.text_news02.setText(list.get(position).getAuthor_name());
DisplayImageOptions options = ImageLoaderUtils.getOptions();
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holderTwo.img_view01);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holderTwo.img_view02);
ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holderTwo.img_view03);
return convertView;
}
}
class ViewHolderOne{
TextView text_name,text_news;
ImageView img_iew;
}
class ViewHolderTwo{
TextView text_name02,text_news02;
ImageView img_view01,img_view02,img_view03;
}
}
======================================Show===================================
public class Show extends AppCompatActivity {
private WebView web_view;
private ViewPager view_page;
private String spec1="https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1";
private List<ImageView> list1= new ArrayList<>();
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
String json = (String) msg.obj;
Gson gson = new Gson();
pics pics = gson.fromJson(json, pics.class);
com.example.dell.chenlin_0822.Bean.pics.BodyBean body = pics.getBody();
List<com.example.dell.chenlin_0822.Bean.pics.BodyBean.ResultBean> result = body.getResult();
for (int i = 0; i < result.size(); i++) {
String pic = result.get(i).getBarnerPic();
ImageView imageView = new ImageView(Show.this);
list1.add(imageView);
ImageLoader.getInstance().displayImage(pic,imageView);
MyAdapter1 myAdapter1 = new MyAdapter1(list1, Show.this);
view_page.setAdapter(myAdapter1);
}
}else if(msg.what==1){
int i = view_page.getCurrentItem();
i++;
view_page.setCurrentItem(i);
handler.sendEmptyMessageDelayed(1,1000);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
web_view = findViewById(R.id.web_view);
//轮播
view_page = findViewById(R.id.view_page);
jiexi(spec1);
//跳转网页
String url = getIntent().getStringExtra("url");
web_view.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageCommitVisible(WebView view, String url) {
super.onPageCommitVisible(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
web_view.loadUrl(url);
}
private void jiexi(final String spec1) {
new Thread(){
@Override
public void run() {
super.run();
try {
URL url = new URL(spec1);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
if(connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len = 0;
if((len=inputStream.read(bytes))!=-1){
bos.write(bytes,0,len);
}
inputStream.close();
bos.close();
String s = bos.toString();
Message message = Message.obtain();
message.what=0;
message.obj=s;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@Override
protected void onPause() {
super.onPause();
handler.sendEmptyMessageDelayed(1,1000);
}
@Override
protected void onResume() {
super.onResume();
handler.removeCallbacksAndMessages(null);
}
}
================================轮播adapter1=============================================
public class MyAdapter1 extends PagerAdapter{
private List<ImageView> list;
private Context context;
public MyAdapter1(List<ImageView> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = list.get(position % list.size());
ViewGroup viewGroup = (ViewGroup) imageView.getParent();
if(viewGroup != null){
viewGroup.removeView(imageView);
}
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
=============================布局============================
<android.support.v4.widget.DrawerLayout
android:id="@+id/dw"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--主界面-->
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="80dp">
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="欢迎来主界面"
/>
</LinearLayout>
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pulltorefresh"
android:layout_width="407dp"
android:layout_height="match_parent">
</com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout>
<!--侧滑-->
<LinearLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="这里是侧滑界面"
android:background="#ff0"
/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
drawLayout侧滑+PullToRefresh+ViewPage
最新推荐文章于 2024-04-28 16:11:13 发布