MainActivity:
packagecn.edu.bzu.news;
import Android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.image.SmartImageView;
import org.apache.http.Header;
import Java.io.ByteArrayInputStream;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListViewlv_news;
private LinearLayoutloading;
private List<NewsInfo> newsInfos;
private class NewsAdapter extendsBaseAdapter{
@Override
public int getCount() {
return newsInfos.size();
}
@Override
public ObjectgetItem(intposition) {
return null;
}
@Override
public long getItemId(intposition) {
return 0;
}
@Override
public ViewgetView(intposition, ViewconvertView, ViewGroup parent) {
View view=View.inflate(MainActivity.this,R.layout.news_item,null);
SmartImageView siv= (SmartImageView)view.findViewById(R.id.siv_icon);
TextView tv_title= (TextView) view.findViewById(R.id.tv_title);
TextView tv_description= (TextView)view.findViewById(R.id.tv_description);
TextView tv_type= (TextView) view.findViewById(R.id.tv_type);
NewsInfo newsInfo=newsInfos.get(position);
siv.setImageUrl(newsInfo.getIconPath(),R.drawable.ab,R.drawable.ic_launcher);
tv_title.setText(newsInfo.getTitle());
tv_description.setText(newsInfo.getdescroption());
int type =newsInfo.gettype();
switch (type){
case 1:
tv_type.setText("评论:"+newsInfo.getComment());
break;
case 2:
tv_type.setTextColor(Color.RED);
tv_type.setText("专题:");
break;
case 3:
tv_type.setTextColor(Color.BLUE);
tv_type.setText("LIVE");
break;
}
return view;
}
}
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_news=(ListView) findViewById(R.id.lv_news);
loading=(LinearLayout) findViewById(R.id.loading);
fillData2();
}
private void fillData2() {
AsyncHttpClient asynHttpClient = new AsyncHttpClient();
asynHttpClient.get(getString(R.string.serverurl),newAsyncHttpResponseHandler() {
@Override
public void onSuccess(Stringcontent) {
super.onSuccess(content);
byte[] btyes = content.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(btyes);
newsInfos =NewsInfoService.getNewsInfos(bais);
if (newsInfos== null) {
Toast.makeText(MainActivity.this,"解析失败",0).show();
} else{
loading.setVisibility(View.INVISIBLE);
lv_news.setAdapter(newNewsAdapter());
}
}
@Override
public void onFailure(Throwable error,String content) {
super.onFailure(error,content);
Toast.makeText(MainActivity.this,"请求失败",0).show();
}
});
}
}
NesInfo:
package cn.edu.bzu.news; import android.widget.TextView; public class NewsInfo { private String iconPath; private String title; private String description; private int type; private long comment; public String getIconPath() { return iconPath; } public void setIconPath(String iconPath) { this.iconPath = iconPath; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getType() { return type; } public void setType(int type) { this.type = type; } public long getComment() { return comment; } public void setComment(long comment) { this.comment = comment; } public int getdescroption() { this.description = description; return 0; } public int gettype() { this.type=type; return 0; } } NESiNFOService:package cn.edu.bzu.news; import android.util.Xml; import org.xmlpull.v1.XmlPullParser; import java.io.InputStream; import java.util.ArrayList; import java.util.List; public class NewsInfoService { public static List<NewsInfo> getNewsInfos(InputStream is) { XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is,"utf-8"); int type =parser.getEventType(); List<NewsInfo> newsInfos=null; NewsInfo newsInfo=null; while (type!=XmlPullParser.END_DOCUMENT){ switch (type){ case XmlPullParser.START_TAG: if("news".equals(parser.getName())){ newsInfo= new NewsInfo(); }else if("newsInfo".equals(parser.getName())){ newsInfo=new NewsInfo(); }else if("icon".equals(parser.getName())){ String icon=parser.nextText(); newsInfo.setIconPath(icon); }else if("title".equals(parser.getName())){ String title=parser.nextText(); newsInfo.setTitle(title); }else if("content".equals(parser.getName())){ String decription=parser.nextText(); newsInfo.setDescription(decription); }else if("type".equals(parser.getName())){ String newstype=parser.nextText(); newsInfo.setType(Integer.parseInt(newstype)); }else if("comment".equals(parser.getName())){ String comment = parser.nextText(); newsInfo.setComment(Long.parseLong(comment)); } break; case XmlPullParser.END_TAG: if ("newsInfo".equals(parser.getName())){ newsInfos.add(newsInfo); newsInfo=null; } break; } type=parser.next(); } return newsInfos; } catch (Exception e) { e.printStackTrace(); } return null; } }activity_main:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/loading" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:visibility="invisible"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在加载信息..." /> </LinearLayout> <ListView android:id="@+id/lv_news" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> </LinearLayout>News:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="65dp"> <com.loopj.android.image.SmartImageView android:id="@+id/siv_icon" android:layout_width="80dp" android:layout_height="60dp" android:scaleType="centerCrop" android:src="@mipmap/ic_launcher" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></com.loopj.android.image.SmartImageView> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="20" android:singleLine="true" android:text="我是标题" android:textColor="#000000" android:textSize="18sp" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="16" android:maxLines="1" android:text="我是描述" android:textColor="#99000000" android:textSize="14sp" /> <TextView android:id="@+id/tv_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="5dp" android:layout_marginRight="10dp" android:text="评论" android:textColor="#99000000" android:textSize="12sp" /> </RelativeLayout>
MainActivity:
packagecn.edu.bzu.news;
import Android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.image.SmartImageView;
import org.apache.http.Header;
import Java.io.ByteArrayInputStream;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListViewlv_news;
private LinearLayoutloading;
private List<NewsInfo> newsInfos;
private class NewsAdapter extendsBaseAdapter{
@Override
public int getCount() {
return newsInfos.size();
}
@Override
public ObjectgetItem(intposition) {
return null;
}
@Override
public long getItemId(intposition) {
return 0;
}
@Override
public ViewgetView(intposition, ViewconvertView, ViewGroup parent) {
View view=View.inflate(MainActivity.this,R.layout.news_item,null);
SmartImageView siv= (SmartImageView)view.findViewById(R.id.siv_icon);
TextView tv_title= (TextView) view.findViewById(R.id.tv_title);
TextView tv_description= (TextView)view.findViewById(R.id.tv_description);
TextView tv_type= (TextView) view.findViewById(R.id.tv_type);
NewsInfo newsInfo=newsInfos.get(position);
siv.setImageUrl(newsInfo.getIconPath(),R.drawable.ab,R.drawable.ic_launcher);
tv_title.setText(newsInfo.getTitle());
tv_description.setText(newsInfo.getdescroption());
int type =newsInfo.gettype();
switch (type){
case 1:
tv_type.setText("评论:"+newsInfo.getComment());
break;
case 2:
tv_type.setTextColor(Color.RED);
tv_type.setText("专题:");
break;
case 3:
tv_type.setTextColor(Color.BLUE);
tv_type.setText("LIVE");
break;
}
return view;
}
}
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_news=(ListView) findViewById(R.id.lv_news);
loading=(LinearLayout) findViewById(R.id.loading);
fillData2();
}
private void fillData2() {
AsyncHttpClient asynHttpClient = new AsyncHttpClient();
asynHttpClient.get(getString(R.string.serverurl),newAsyncHttpResponseHandler() {
@Override
public void onSuccess(Stringcontent) {
super.onSuccess(content);
byte[] btyes = content.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(btyes);
newsInfos =NewsInfoService.getNewsInfos(bais);
if (newsInfos== null) {
Toast.makeText(MainActivity.this,"解析失败",0).show();
} else{
loading.setVisibility(View.INVISIBLE);
lv_news.setAdapter(newNewsAdapter());
}
}
@Override
public void onFailure(Throwable error,String content) {
super.onFailure(error,content);
Toast.makeText(MainActivity.this,"请求失败",0).show();
}
});
}
}
NesInfo:
package cn.edu.bzu.news; import android.widget.TextView; public class NewsInfo { private String iconPath; private String title; private String description; private int type; private long comment; public String getIconPath() { return iconPath; } public void setIconPath(String iconPath) { this.iconPath = iconPath; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getType() { return type; } public void setType(int type) { this.type = type; } public long getComment() { return comment; } public void setComment(long comment) { this.comment = comment; } public int getdescroption() { this.description = description; return 0; } public int gettype() { this.type=type; return 0; } } NESiNFOService:package cn.edu.bzu.news; import android.util.Xml; import org.xmlpull.v1.XmlPullParser; import java.io.InputStream; import java.util.ArrayList; import java.util.List; public class NewsInfoService { public static List<NewsInfo> getNewsInfos(InputStream is) { XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is,"utf-8"); int type =parser.getEventType(); List<NewsInfo> newsInfos=null; NewsInfo newsInfo=null; while (type!=XmlPullParser.END_DOCUMENT){ switch (type){ case XmlPullParser.START_TAG: if("news".equals(parser.getName())){ newsInfo= new NewsInfo(); }else if("newsInfo".equals(parser.getName())){ newsInfo=new NewsInfo(); }else if("icon".equals(parser.getName())){ String icon=parser.nextText(); newsInfo.setIconPath(icon); }else if("title".equals(parser.getName())){ String title=parser.nextText(); newsInfo.setTitle(title); }else if("content".equals(parser.getName())){ String decription=parser.nextText(); newsInfo.setDescription(decription); }else if("type".equals(parser.getName())){ String newstype=parser.nextText(); newsInfo.setType(Integer.parseInt(newstype)); }else if("comment".equals(parser.getName())){ String comment = parser.nextText(); newsInfo.setComment(Long.parseLong(comment)); } break; case XmlPullParser.END_TAG: if ("newsInfo".equals(parser.getName())){ newsInfos.add(newsInfo); newsInfo=null; } break; } type=parser.next(); } return newsInfos; } catch (Exception e) { e.printStackTrace(); } return null; } }activity_main:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/loading" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:visibility="invisible"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在加载信息..." /> </LinearLayout> <ListView android:id="@+id/lv_news" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> </LinearLayout>News:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="65dp"> <com.loopj.android.image.SmartImageView android:id="@+id/siv_icon" android:layout_width="80dp" android:layout_height="60dp" android:scaleType="centerCrop" android:src="@mipmap/ic_launcher" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></com.loopj.android.image.SmartImageView> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="20" android:singleLine="true" android:text="我是标题" android:textColor="#000000" android:textSize="18sp" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="16" android:maxLines="1" android:text="我是描述" android:textColor="#99000000" android:textSize="14sp" /> <TextView android:id="@+id/tv_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="5dp" android:layout_marginRight="10dp" android:text="评论" android:textColor="#99000000" android:textSize="12sp" /> </RelativeLayout>