這裏主要是:Banner+網絡判斷+網絡請求+XListView多條目+跑馬燈+fragment+AlertDialog
上代碼:首先佈局
activity_main:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:text="熱門"
android:background="@drawable/btn_selector"
/>
<Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn2"
android:text="分類"
android:background="@drawable/btn_selector"
/>
<Button
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn3"
android:text="作者"
android:background="@drawable/btn_selector"
/>
</LinearLayout>
<RelativeLayout
android:id="@+id/rela"
android:layout_width="match_parent"
android:layout_height="match_parent"></RelativeLayout>
fragment01:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<com.youth.banner.Banner
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/bannerer"
></com.youth.banner.Banner>
<zhangxuelei1506d.mounth_demo.xListView.XListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/xxxxxlist"
></zhangxuelei1506d.mounth_demo.xListView.XListView>
</LinearLayout>
fragment02:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="50dp"
android:text="分類"
/>
fragment03:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="50dp"
android:text="作者"
/>
item:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image_image"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title_title"
/>
<zhangxuelei1506d.mounth_demo.xListView.MarqueeTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:text="我是跑馬燈效果!!!,我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!我是跑馬燈效果!!!"/>
</LinearLayout>
開始編寫類裏面的代碼:
MainActivity:
public class MainActivity extends FragmentActivity implements View.OnClickListener {
private Fragment01 fragment01;
private Fragment02 fragment02;
private Fragment03 fragment03;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolean iscintent = Utils.iscintent(MainActivity.this);
if(iscintent==true){
Toast.makeText(this,"當前網絡已連接",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this,"當前網絡已斷開",Toast.LENGTH_SHORT).show();
AlertDialog.Builder alterdialog=new AlertDialog.Builder(this);
alterdialog.setTitle("警告");
alterdialog.setMessage(" 通過移動數據訪問?");
alterdialog.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(ACTION_WIRELESS_SETTINGS));
}
});
alterdialog.setNegativeButton("取消",null);
alterdialog.create();
alterdialog.show();
}
Button button1 = (Button) findViewById(R.id.btn1);
button1.setOnClickListener(this);
Button button2 = (Button) findViewById(R.id.btn2);
button2.setOnClickListener(this);
Button button3 = (Button) findViewById(R.id.btn3);
button3.setOnClickListener(this);
fragment01 = new Fragment01();
fragment02 = new Fragment02();
fragment03 = new Fragment03();
getSupportFragmentManager().beginTransaction().add(R.id.rela, fragment01).commit();
getSupportFragmentManager().beginTransaction().add(R.id.rela, fragment02).commit();
getSupportFragmentManager().beginTransaction().add(R.id.rela, fragment03).commit();
getSupportFragmentManager().beginTransaction().show(fragment01).hide(fragment02).hide(fragment03).commit();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn1:
getSupportFragmentManager().beginTransaction().show(fragment01).hide(fragment02).hide(fragment03).commit();
break;
case R.id.btn2:
getSupportFragmentManager().beginTransaction().show(fragment02).hide(fragment01).hide(fragment03).commit();
break;
case R.id.btn3:
getSupportFragmentManager().beginTransaction().show(fragment03).hide(fragment01).hide(fragment02).commit();
break;
}
}
}
fragment01:
public class Fragment01 extends Fragment implements XListView.IXListViewListener {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment01, container, false);
List<String> images = new ArrayList();
images.add("http://img3.imgtn.bdimg.com/it/u=3242709860,2221903223&fm=214&gp=0.jpg");
images.add("http://pic.58pic.com/58pic/14/25/01/74w58PICP5D_1024.jpg");
images.add("http://img1.imgtn.bdimg.com/it/u=3803696467,3357537026&fm=214&gp=0.jpg");
images.add("http://img5.niutuku.com/phone/1301/3131/3131-niutuku.com-109273.jpg");
Banner banner = (Banner) view.findViewById(R.id.bannerer);
banner.setImageLoader(new GlideImageLoader());
banner.setImages(images);
banner.start();
final XListView xListView = (XListView) view.findViewById(R.id.xxxxxlist);
xListView.setXListViewListener(this);
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
try {
URL url = new URL("http://huixinguiyu.cn/Assets/js/newsnew.js");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(8000);
httpURLConnection.setReadTimeout(8000);
int code = httpURLConnection.getResponseCode();
if (code == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
ByteArrayOutputStream outputstream = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = inputStream.read(buffer)) != -1) {
outputstream.write(buffer, 0, len);
}
return outputstream.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
List<myBean.NewslistBean.NewsBean> list=new ArrayList<myBean.NewslistBean.NewsBean>();
Gson gson=new Gson();
myBean myBean = gson.fromJson(s, myBean.class);
list=myBean.newslist.news;
myBaseAdapter adapter=new myBaseAdapter(list,getActivity());
xListView.setAdapter(adapter);
}
}.execute();
return view;
}
@Override
public void onRefresh() {
}
@Override
public void onLoadMore() {
}
}
fragment02:
public class Fragment02 extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment02, container, false);
return view;
}
}
fragment03:
public class Fragment03 extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment03, container, false);
return view;
}
}
適配器:
public class myBaseAdapter extends BaseAdapter {
private List<myBean.NewslistBean.NewsBean> list;
private Context context;
public myBaseAdapter(List<myBean.NewslistBean.NewsBean> list, Context context) {
this.list = list;
this.context = context;
}
@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) {
viewHolder holder = null;
if (convertView == null) {
holder = new viewHolder();
convertView = convertView.inflate(context, R.layout.item, null);
holder.image = (ImageView) convertView.findViewById(R.id.image_image);
holder.title = (TextView) convertView.findViewById(R.id.title_title);
convertView.setTag(holder);
}else{
holder= (viewHolder) convertView.getTag();
}
holder.title.setText(list.get(position).title);
//這步驟是用imageloder加載圖片的
DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true) .build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.defaultDisplayImageOptions(displayImageOptions)
.build();
ImageLoader.getInstance().init(config);
ImageLoader.getInstance().displayImage(list.get(position).image, holder.image);
return convertView;
}
class viewHolder {
ImageView image;
TextView title;
}
}
下面這些都是上面需要用到的一些工具類及javaBean:
Banner及Fresco的工具類:
public class GlideImageLoader extends ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Uri uri = Uri.parse((String) path);
imageView.setImageURI(uri);
}
@Override
public ImageView createImageView(Context context) {
//使用fresco,需要創建它提供的ImageView,當然你也可以用自己自定義的具有圖片加載功能的ImageView
SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
return simpleDraweeView;
}
}
Fresco初始化:public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
javaBean類:
public class myBean {
public NewslistBean newslist;
public static myBean objectFromData(String str) {
return new Gson().fromJson(str, myBean.class);
}
public static class NewslistBean {
public List<NewsBean> news;
public static NewslistBean objectFromData(String str) {
return new Gson().fromJson(str, NewslistBean.class);
}
public static class NewsBean {
public String title;
public String detail;
public String comment;
public String image;
public static NewsBean objectFromData(String str) {
return new Gson().fromJson(str, NewsBean.class);
}
}
}
}
判斷手機網絡類:
public class Utils {
public static boolean iscintent(Context context) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
if (info != null) {
return true;
}
return false;
}
}
導入Gson jar包,
在清單文件裏註冊
android:name=".MyApplication"