這是資料類
import android.graphics.Bitmap;
public class News {
private Bitmap news_img;
private String news_title;
private String news_url;
private String news_picurl;
private String uniquekey;
private String date;
private String author_name;
public News(Bitmap news_img, String news_title, String news_url, String news_picurl, String date, String author_name) {
this.news_img = news_img;
this.news_title = news_title;
this.news_url = news_url;
this.news_picurl = news_picurl;
this.date = date;
this.author_name = author_name;
}
public News(Bitmap news_img, String news_title, String news_url, String news_picurl, String uniquekey, String date, String author_name) {
this.news_img = news_img;
this.news_title = news_title;
this.news_url = news_url;
this.news_picurl = news_picurl;
this.uniquekey = uniquekey;
this.date = date;
this.author_name = author_name;
}
這是第一個用介面的fragment
public class SportFragment extends Fragment implements LoadListView.ILoadListener,
LoadListView.RLoadListener, NewsAdapter.CallBack {
final String url = "http://api.tianapi.com/bulletin/index?keyce61d8ab4ac578c8699bc00e7620c43a&num=3";
private View view;
private LoadListView mListView;
private List<News> newsList;
private NewsAdapter adapter;
private MyBitmapUtils myBitmapUtils;
public SportFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news, container, false);
myBitmapUtils = new MyBitmapUtils(getContext());
setupViews();
if (!HttpUtils.isNetworkAvalible(getContext())) {
//HttpUtils.checkNetwork(getActivity());
Toast.makeText(getContext(), "當前沒有可以使用的網路,請檢查網路設定!", Toast.LENGTH_SHORT).show();
} else {
initNews();
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getContext(), ShowNewsActivity.class);
intent.putExtra("title", newsList.get(i - mListView.getHeaderViewsCount()).getNews_title());
intent.putExtra("url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_url());
intent.putExtra("date", newsList.get(i - mListView.getHeaderViewsCount()).getDate());
intent.putExtra("author", newsList.get(i - mListView.getHeaderViewsCount()).getAuthor_name());
intent.putExtra("pic_url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_picurl());
startActivity(intent);
}
});
return view;
}
private void initNews() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON(jsonData);
}
}).start();
}
private void parseJSONWithGSON(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
for (int i = 0; i < 10; i++) {
JSONObject json_news = jsonArray.getJSONObject(i);
String imgUrl = json_news.getString("picUrl");
/**
* 采取三級快取策略加載圖片
*/
Bitmap bitmap = myBitmapUtils.getBitmap(imgUrl);
/**
* 不采取快取策略
*/
//Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Refresh(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, date, imgUrl, author_name);
newsList.add(0, news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Load(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void initNewDatas() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON_Load(jsonData);
}
}).start();
}
private void initRefreshDatas() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON_Refresh(jsonData);
}
}).start();
}
private void setupViews() {
mListView = view.findViewById(R.id.lv_main);
//上拉加載介面
mListView.setInterface(this);
mListView.setReflashInterface(this);
newsList = new ArrayList<News>();
adapter = new NewsAdapter(getContext(), R.layout.news_item, newsList, this);
mListView.setAdapter(adapter);
}
第二個
public class EnteFragment extends Fragment implements LoadListView.ILoadListener,
LoadListView.RLoadListener, NewsAdapter.CallBack {
final String url = "http://api.tianapi.com/bulletin/index?keyce61d8ab4ac578c8699bc00e7620c43a&num=3";
private View view;
private LoadListView mListView;
private List<News> newsList;
private NewsAdapter adapter;
private MyBitmapUtils myBitmapUtils;
public EnteFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news, container, false);
myBitmapUtils = new MyBitmapUtils(getContext());
setupViews();
if (!HttpUtils.isNetworkAvalible(getContext())) {
//HttpUtils.checkNetwork(getActivity());
Toast.makeText(getContext(),"當前沒有可以使用的網路,請檢查網路設定!",Toast.LENGTH_SHORT).show();
} else {
initNews();
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getContext(), ShowNewsActivity.class);
intent.putExtra("title", newsList.get(i - mListView.getHeaderViewsCount()).getNews_title());
intent.putExtra("url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_url());
intent.putExtra("date", newsList.get(i - mListView.getHeaderViewsCount()).getDate());
intent.putExtra("author", newsList.get(i - mListView.getHeaderViewsCount()).getAuthor_name());
intent.putExtra("pic_url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_picurl());
startActivity(intent);
}
});
return view;
}
private void initNews() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON(jsonData);
}
}).start();
}
private void parseJSONWithGSON(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
uj5u.com熱心網友回復:
第三個public class TechFragment extends Fragment implements LoadListView.ILoadListener,
LoadListView.RLoadListener, NewsAdapter.CallBack {
private static final String TAG = "TechFragment";
final String url = "http://api.tianapi.com/bulletin/index?keyce61d8ab4ac578c8699bc00e7620c43a&num=3";
private View view;
private LoadListView mListView;
private List<News> newsList;
private NewsAdapter adapter;
private MyBitmapUtils myBitmapUtils;
public TechFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news, container, false);
Log.d(TAG, "onCreateView");
myBitmapUtils = new MyBitmapUtils(getContext());
setupViews();
if (!HttpUtils.isNetworkAvalible(getContext())) {
//HttpUtils.checkNetwork(getActivity());
Toast.makeText(getContext(),"當前沒有可以使用的網路,請檢查網路設定!",Toast.LENGTH_SHORT).show();
} else {
initNews();
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getContext(), ShowNewsActivity.class);
intent.putExtra("title", newsList.get(i - mListView.getHeaderViewsCount()).getNews_title());
intent.putExtra("url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_url());
intent.putExtra("date", newsList.get(i - mListView.getHeaderViewsCount()).getDate());
intent.putExtra("author", newsList.get(i - mListView.getHeaderViewsCount()).getAuthor_name());
intent.putExtra("pic_url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_picurl());
startActivity(intent);
//添加Activity過場影片
getActivity().overridePendingTransition(R.anim.anim_scale, R.anim.anim_alpha);
}
});
return view;
}
private void initNews() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON(jsonData);
}
}).start();
}
private void parseJSONWithGSON(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
for (int i = 0; i < 10; i++) {
JSONObject json_news = jsonArray.getJSONObject(i);
String imgUrl = json_news.getString("picUrl");
/**
* 采取三級快取策略加載圖片
*/
Bitmap bitmap = myBitmapUtils.getBitmap(imgUrl);
/**
* 不采取快取策略
*/
//Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
Log.d(TAG, "url:*-*-*-*-*-*-*" + imgUrl);
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Refresh(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Log.d(TAG, "url:*-*-*-*-*-*-*" + imgUrl);
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(0, news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Load(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Log.d(TAG, "url:*-*-*-*-*-*-*" + imgUrl);
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
uj5u.com熱心網友回復:
第四個public class MiliFragment extends Fragment implements LoadListView.ILoadListener,
LoadListView.RLoadListener, NewsAdapter.CallBack {
final String url = "http://api.tianapi.com/bulletin/index?keyce61d8ab4ac578c8699bc00e7620c43a&num=3";
private View view;
private LoadListView mListView;
private List<News> newsList;
private NewsAdapter adapter;
private MyBitmapUtils myBitmapUtils;
public MiliFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news, container, false);
myBitmapUtils = new MyBitmapUtils(getContext());
setupViews();
if (!HttpUtils.isNetworkAvalible(getContext())) {
//HttpUtils.checkNetwork(getActivity());
Toast.makeText(getContext(),"當前沒有可以使用的網路,請檢查網路設定!",Toast.LENGTH_SHORT).show();
} else {
initNews();
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getContext(), ShowNewsActivity.class);
intent.putExtra("title", newsList.get(i - mListView.getHeaderViewsCount()).getNews_title());
intent.putExtra("url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_url());
intent.putExtra("date", newsList.get(i - mListView.getHeaderViewsCount()).getDate());
intent.putExtra("author", newsList.get(i - mListView.getHeaderViewsCount()).getAuthor_name());
intent.putExtra("pic_url", newsList.get(i - mListView.getHeaderViewsCount()).getNews_picurl());
startActivity(intent);
}
});
return view;
}
private void initNews() {
new Thread(new Runnable() {
@Override
public void run() {
String jsonData = HttpUtils.requestHttp(url);
parseJSONWithGSON(jsonData);
}
}).start();
}
private void parseJSONWithGSON(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
for (int i = 0; i < 10; i++) {
JSONObject json_news = jsonArray.getJSONObject(i);
String imgUrl = json_news.getString("picUrl");
/**
* 采取三級快取策略加載圖片
*/
Bitmap bitmap = myBitmapUtils.getBitmap(imgUrl);
/**
* 不采取快取策略
*/
//Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Refresh(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(0, news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJSONWithGSON_Load(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
JSONObject json_news = jsonArray.getJSONObject(new Random().nextInt(30) + 1);
String imgUrl = json_news.getString("picUrl");
Bitmap bitmap = HttpUtils.decodeUriAsBitmapFromNet(imgUrl);
String title = json_news.getString("title");
String date = json_news.getString("ctime");
String author_name = json_news.getString("description");
String url = json_news.getString("url");
News news = new News(bitmap, title, url, imgUrl, date, author_name);
newsList.add(news);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
uj5u.com熱心網友回復:
呼叫的activtyprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_news);
initView();
helper = new MyDatabaseHelper(this, "UserDB.db", null, 1);
mDialog = new ProgressDialog(ShowNewsActivity.this);
mDialog.setMessage("玩命加載ing");
show_news.setWebViewClient(new WebViewClient() {
//網頁加載時的回呼
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (!mDialog.isShowing()) {
mDialog.show();
}
}
//網頁停止加載時的回呼
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 如果沒有顯示,則顯示
if (mDialog.isShowing())
mDialog.dismiss();
}
});
show_news.getSettings().setJavaScriptEnabled(true);
Intent intent = getIntent();
final String news_url = intent.getStringExtra("url");
final String news_title = intent.getStringExtra("title");
final String news_date = intent.getStringExtra("date");
final String news_author = intent.getStringExtra("author");
final String news_picurl = intent.getStringExtra("pic_url");
show_news.loadUrl(news_url);
collect_news.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
collect_news.setImageResource(R.drawable.favorite_selected);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
//組裝資料
values.put("news_url", news_url);
values.put("news_title", news_title);
values.put("news_date", news_date);
values.put("news_author", news_author);
values.put("news_picurl", news_picurl);
db.insert("Collection_News", null, values);
db.close();
/* SharedPreferences sp = getSharedPreferences("collection", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(news_title, news_url);
//提交
editor.apply();*/
Toast.makeText(ShowNewsActivity.this, "收藏成功!", Toast.LENGTH_SHORT).show();
}
});
}
uj5u.com熱心網友回復:
以你的第一個fragment中的代碼為例:通過斷點查看以下幾點
1.代碼第49行parseJSONWithGSON(jsonData);中jsonData是否存在值
2.在adapter.notifyDataSetChanged()后需要追查一下,在NewsAdapter類設定的資料newsList的值是否得到了更新,
并查看NewsAdapter類中getView方法執行的程序是否有了資料
還有你的NewsAdapter類最好能夠貼出來
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/59841.html
標籤:Android
上一篇:大佬們幫幫我
下一篇:單手指實作對圖片編輯,縮放,旋轉
