bean对象
public class NewsBean {
private String title;
private String data;
private String category;
private String author_name;
public NewsBean() {
super();
// TODO Auto-generated constructor stub
}
public NewsBean(String title, String data, String category,
String author_name) {
super();
this.title = title;
this.data = data;
this.category = category;
this.author_name = author_name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAuthor_name() {
return author_name;
}
public void setAuthor_name(String author_name) {
this.author_name = author_name;
}
@Override
public String toString() {
return "NewsBean [title=" + title + ", data=" + data + ", category="
+ category + ", author_name=" + author_name + "]";
}
}
public class MainActivity extends Activity {
private List<NewsBean> news;
private NewsBean currNews;
private ListView lv;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
news = new ArrayList<NewsBean>();
lv = (ListView) this.findViewById(R.id.act_main_lv);
initDatas();
}
private void initDatas() {
// for (int i = 0; i < 10; i++) {
// news.add(new NewsBean());
// }
adapter = new MyAdapter();
lv.setAdapter(adapter);
}
/**
*
* 适配器
*
*/
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return news.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View v, ViewGroup parent) {
MyViewHolder vh = null;
if(v==null){
v = getLayoutInflater().inflate(R.layout.item, null);
vh = new MyViewHolder();
vh.tvTitle = (TextView) v.findViewById(R.id.item_title);
vh.tvDate = (TextView) v.findViewById(R.id.item_date);
vh.tvKind = (TextView) v.findViewById(R.id.item_kind);
vh.tvAuthor = (TextView) v.findViewById(R.id.item_author);
v.setTag(vh);
}else{
vh = (MyViewHolder) v.getTag();
}
//填充数据
vh.tvTitle.setText(news.get(position).getTitle());
vh.tvDate.setText(news.get(position).getData());
vh.tvKind.setText(news.get(position).getCategory());
vh.tvAuthor.setText(news.get(position).getAuthor_name());
return v;
}
class MyViewHolder{
TextView tvTitle,tvDate,tvKind,tvAuthor;
}
}
//--------------------------------------------------------------------------
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
new Thread() {
public void run() {
/**
* 联网获取数据 请求地址:http://v.juhe.cn/toutiao/index
* 请求参数:type=yule&key=c8fe066ae002d20891fbc48a1783a1ee 请求方式:GET
*/
URL url;
try {
url = new URL(
"http://v.juhe.cn/toutiao/index?type=yule&key=c8fe066ae002d20891fbc48a1783a1ee");
// 网络连接对象
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(4000);
conn.setConnectTimeout(5000);
conn.connect();
StringBuffer sb = new StringBuffer();
String str = null;
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
while ((str = br.readLine()) != null) {
sb.append(str);
}
// Log.i("myTag", sb.toString());
//json解析
JSONObject object = new JSONObject(sb.toString());
object = object.getJSONObject("result");
JSONArray jsonArray = object.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
object = (JSONObject) jsonArray.get(i);
currNews = new NewsBean();
currNews.setTitle(object.getString("title"));
currNews.setData(object.getString("date"));
currNews.setCategory(object.getString("category"));
currNews.setAuthor_name(object.getString("author_name"));
news.add(currNews);
//
// setOnUpdateListener(news, new updateListener(){
//
// @Override
// public void updateDatas(List<NewsBean> news) {
// adapter.notifyDataSetChanged()
// }
//
// });
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
}
for (NewsBean n : news) {
System.out.println(n+"\r\n");
}
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
return super.onOptionsItemSelected(item);
}
// //----------------------------------------------------------------------------------------
// private updateListener listener;
//
// public void setOnUpdateListener(List<NewsBean> news, updateListener listener){
// if(listener!=null){
// listener.updateDatas(news);
// }
// }
//
// public interface updateListener{
// void updateDatas(List<NewsBean> news);
// }
}