activity_main.xml布局 (整体布局)
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:id="@+id/dl_root"
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<com.bwie.xlistview.XListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"></com.bwie.xlistview.XListView>
</LinearLayout>
<LinearLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#595353"
android:orientation="vertical"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_launcher_round"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="网易云"
/>
<ListView
android:id="@+id/list_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
MainActivity页面(抽屉的 显示数据 的)
package com.example.lenovo.a06mo1;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.bwie.xlistview.XListView;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
public static final String url=“http://www.xieast.com/api/news/news.php?page=”;
private static final String TAG=“MainActivity”;
private DrawerLayout dlRoot;
private ListView lvDrawer;
private List list;
private XListView xListView;
private NewsAdapter adapter;
private List<News.DataBean> xlist;
private int page=1;
private Handler handler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dlRoot=findViewById(R.id.dl_root);
lvDrawer=findViewById(R.id.list_drawer);
xlist=new ArrayList<>();
xListView=findViewById(R.id.list_view);
adapter=new NewsAdapter(this,xlist);
xListView.setAdapter(adapter);
xListView.setPullRefreshEnable(true);
xListView.setPullLoadEnable(true);
xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(MainActivity.this,ShowActivity.class);
String sc=xlist.get(position).getUrl();
intent.putExtra("sc",sc);
startActivity(intent);
}
});
xListView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
getdata(page,true);
}
@Override
public void onLoadMore() {
page++;
getdata(page,false);
}
});
getdata(page,false);
list=new ArrayList<>();
list.add("我的音乐");
list.add("我的会员");
list.add("我的网盘");
list.add("我的关注");
lvDrawer.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,list));
lvDrawer.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
NewsFragment fragment=NewsFragment.newInstance(list.get(position));
// getSupportFragmentManager().beginTransaction().replace(R.i,fragment).commit();
dlRoot.closeDrawer(Gravity.START);
}
});
dlRoot.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(@NonNull View drawerView) {
}
@Override
public void onDrawerClosed(@NonNull View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
switch (newState){
case DrawerLayout.STATE_SETTLING:
Log.i(TAG,"STATE_SETTLING");
break;
case DrawerLayout.STATE_DRAGGING:
Log.i(TAG,"STATE_DRAGGING");
break;
case DrawerLayout.STATE_IDLE:
Log.i(TAG,"STATE_IDLE");
break;
}
}
});
}
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){
xlist.clear();
}
xlist.addAll(data);
adapter.notifyDataSetChanged();
}
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (b){
xListView.stopLoadMore();
}else{
xListView.stopRefresh();
xListView.setRefreshTime("刚刚");
}
}
},2000);
}
}.execute(url+page);
}
}
NewsFragment页面
package com.example.lenovo.a06mo1;
import android.os.Bundle;
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.TextView;
/**
- Created by lenovo on 2018-10-20.
*/
public class NewsFragment extends Fragment{
private static final String FLAG=“按入”;
private TextView txtShow;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_news, null, false);
txtShow=v.findViewById(R.id.txt_show);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle bundle=getArguments();
String result=bundle.getString(FLAG);
txtShow.setText(result);
}
/**
* 静态传值
* @param
* @return
*/
public static NewsFragment newInstance(String str) {
NewsFragment fragment=new NewsFragment();
Bundle bundle=new Bundle();
bundle.putString(FLAG,str);
fragment.setArguments(bundle);
return fragment;
}
}
HttpUtils
package com.example.lenovo.a06mo1;
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-20.
*/
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.setConnectTimeout(3000);
connection.connect();
if (connection.getResponseCode()==200){
InputStream is=connection.getInputStream();
result=getInputStream(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
public static String getInputStream(InputStream is) {
String result="";
try {
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int length=-1;
byte[] buffer=new byte[1024];
while ((length=is.read(buffer,0,buffer.length))!=-1){
baos.write(buffer,0,length);
baos.flush();
}
result=baos.toString();
baos.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
跳转的新闻详细页面ShowActivity##
package com.example.lenovo.a06mo1;
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,String url) {
return super.shouldOverrideUrlLoading(view,url);
}
});
}
}