Android 无法将NewsListAdapter解析为Eclipse错误类型 公共类NewsActivity扩展活动实现OnClickListener{ 私有静态最终字符串TAG=“NewsActivity”; 私有整数=10; 私有int indexStart=0; 私有字符串newsUrl=”http://query.yahooapis.com/v1/public/yql?q=select%20*%20来自%20rss%20其中%20“+ “url%20%3D%20%22http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3D2011%2BIAF%2Bworld%2Bchampions%2B”+ “大邱%26num%3D”+numArticles+%26start%3D”+indexStart+%26output%3Drss%22&format=json”; 私有布尔加载=false; 私有ListView新闻ListView; 私人进度条新闻进度; 私有图像按钮重新加载; private NewsListAdapter NewsListAdapter=null; private ArrayList nda=new ArrayList(); 创建时的公共void(捆绑状态){ super.onCreate(state); setContentView(R.layout.news); newsListView=(ListView)findViewById(R.id.news\u list\u view); newsProgress=(ProgressBar)findViewById(R.id.title\u news\u refresh\u progress); newsReload=(ImageButton)findViewById(R.id.btn\u news\u title\u refresh); newsload.setOnClickListener(这个); changeLoadingImages(); nda=DaeguActivity.getNewsData(); 如果(数据大小()>0){ setListView(); }否则{ 新建NewsLoadingTask().execute(newsUrl); } } 私有类NewsLoadingTask扩展异步任务{ @凌驾 受保护的JSONObject doInBackground(字符串…URL){ 返回loadNewsData(URL[0]); } @凌驾 受保护的void onPostExecute(检索到JSONObject数据){ processJsonObject(检索到的数据); } } 私有JSONObject loadNewsData(字符串urlStr){ 字符串结果=null; 试一试{ URL=新URL(urlStr); URLConnection conn=url.openConnection(); //得到回应 BufferedReader rd=新的BufferedReader(新的InputStreamReader(conn.getInputStream()); StringBuffer sb=新的StringBuffer(); 弦线; 而((line=rd.readLine())!=null) 某人附加(行); rd.close(); 结果=sb.toString(); 返回新的JSONObject(结果); }捕获(例外e){ e、 printStackTrace(); } 返回null; } 私有void进程JSONObject(JSONObject json){ if(json!=null){ JSONArray文章; 试一试{ articles=json.getJSONObject(“查询”) .getJSONObject(“结果”) .getJSONArray(“项目”); 对于(int i=0;i
说明资源路径位置类型 类型A中的方法setOnScrollListener(AbsListView.OnScrollListener)Android 无法将NewsListAdapter解析为Eclipse错误类型 公共类NewsActivity扩展活动实现OnClickListener{ 私有静态最终字符串TAG=“NewsActivity”; 私有整数=10; 私有int indexStart=0; 私有字符串newsUrl=”http://query.yahooapis.com/v1/public/yql?q=select%20*%20来自%20rss%20其中%20“+ “url%20%3D%20%22http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3D2011%2BIAF%2Bworld%2Bchampions%2B”+ “大邱%26num%3D”+numArticles+%26start%3D”+indexStart+%26output%3Drss%22&format=json”; 私有布尔加载=false; 私有ListView新闻ListView; 私人进度条新闻进度; 私有图像按钮重新加载; private NewsListAdapter NewsListAdapter=null; private ArrayList nda=new ArrayList(); 创建时的公共void(捆绑状态){ super.onCreate(state); setContentView(R.layout.news); newsListView=(ListView)findViewById(R.id.news\u list\u view); newsProgress=(ProgressBar)findViewById(R.id.title\u news\u refresh\u progress); newsReload=(ImageButton)findViewById(R.id.btn\u news\u title\u refresh); newsload.setOnClickListener(这个); changeLoadingImages(); nda=DaeguActivity.getNewsData(); 如果(数据大小()>0){ setListView(); }否则{ 新建NewsLoadingTask().execute(newsUrl); } } 私有类NewsLoadingTask扩展异步任务{ @凌驾 受保护的JSONObject doInBackground(字符串…URL){ 返回loadNewsData(URL[0]); } @凌驾 受保护的void onPostExecute(检索到JSONObject数据){ processJsonObject(检索到的数据); } } 私有JSONObject loadNewsData(字符串urlStr){ 字符串结果=null; 试一试{ URL=新URL(urlStr); URLConnection conn=url.openConnection(); //得到回应 BufferedReader rd=新的BufferedReader(新的InputStreamReader(conn.getInputStream()); StringBuffer sb=新的StringBuffer(); 弦线; 而((line=rd.readLine())!=null) 某人附加(行); rd.close(); 结果=sb.toString(); 返回新的JSONObject(结果); }捕获(例外e){ e、 printStackTrace(); } 返回null; } 私有void进程JSONObject(JSONObject json){ if(json!=null){ JSONArray文章; 试一试{ articles=json.getJSONObject(“查询”) .getJSONObject(“结果”) .getJSONArray(“项目”); 对于(int i=0;i,android,Android,说明资源路径位置类型 类型A中的方法setOnScrollListener(AbsListView.OnScrollListener) public class NewsActivity extends Activity implements OnClickListener { private static final String TAG = "NewsActivity"; private int numArticles = 10; private int inde
public class NewsActivity extends Activity implements OnClickListener {
private static final String TAG = "NewsActivity";
private int numArticles = 10;
private int indexStart = 0;
private String newsUrl = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20" +
"url%20%3D%20%22http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3D2011%2Biaaf%2Bworld%2Bchampionships%2B" +
"daegu%26num%3D"+numArticles+"%26start%3D"+indexStart+"%26output%3Drss%22&format=json";
private boolean loading = false;
private ListView newsListView;
private ProgressBar newsProgress;
private ImageButton newsReload;
private NewsListAdapter newsListAdapter = null;
private ArrayList<NewsData> ndata = new ArrayList<NewsData>();
public void onCreate(Bundle state) {
super.onCreate(state);
setContentView(R.layout.news);
newsListView = (ListView) findViewById(R.id.news_list_view);
newsProgress = (ProgressBar) findViewById(R.id.title_news_refresh_progress);
newsReload = (ImageButton) findViewById(R.id.btn_news_title_refresh);
newsReload.setOnClickListener(this);
changeLoadingImages();
ndata = DaeguActivity.getNewsData();
if (ndata.size() > 0) {
setListView();
} else {
new NewsLoadingTask().execute(newsUrl);
}
}
private class NewsLoadingTask extends AsyncTask<String, Void, JSONObject> {
@Override
protected JSONObject doInBackground(String... urls) {
return loadNewsData(urls[0]);
}
@Override
protected void onPostExecute(JSONObject dataRetrieved) {
processJsonObject(dataRetrieved);
}
}
private JSONObject loadNewsData(String urlStr) {
String result = null;
try {
URL url = new URL(urlStr);
URLConnection conn = url.openConnection();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null)
sb.append(line);
rd.close();
result = sb.toString();
return new JSONObject(result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private void processJsonObject(JSONObject json) {
if (json != null) {
JSONArray articles;
try {
articles = json.getJSONObject("query")
.getJSONObject("results")
.getJSONArray("item");
for (int i = 0; i < articles.length(); i++) {
String title = articles.getJSONObject(i).getString("title");;
String articleUrl = articles.getJSONObject(i).getString("link");
String imageUrl = articles.getJSONObject(i).getString("description");
ndata.add(new NewsData(title, imageUrl, articleUrl));
}
setListView();
loading = false;
} catch (JSONException e) {
Log.i(TAG, "json exception");
return;
}
}
}
private void setListView() {
if (newsListAdapter == null) {
newsListAdapter = new NewsListAdapter(ndata, this);
newsListView.setAdapter(newsListAdapter); //my custom adapter for the news
}
newsListAdapter.notifyDataSetChanged();
changeLoadingImages();
}
private void changeLoadingImages() {
if (loading) {
newsReload.setVisibility(View.VISIBLE);
newsProgress.setVisibility(View.GONE);
loading = false;
} else {
newsReload.setVisibility(View.GONE);
newsProgress.setVisibility(View.VISIBLE);
loading = true;
}
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_news_title_refresh) {
ndata.clear();
new NewsLoadingTask().execute(newsUrl);
} else {}
}
/*
*
* newsListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
Intent i = new Intent(NewsActivity.this, NewsArticleViewer.class);
i.putExtra("url", ndata.get(pos).getArticleUrl());
i.putExtra("title", ndata.get(pos).getTitle());
startActivity(i);
}
});
newsListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (firstVisibleItem+visibleItemCount == totalItemCount) {
Log.i(TAG, firstVisibleItem + " " + visibleItemCount + " " + totalItemCount);
if (loading == false) {
loading = true;
indexStart += 10;
newsUrl = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20" +
"url%20%3D%20%22http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3D2011%2Biaaf%2Bworld%2Bchampionships%2B" +
"daegu%26num%3D"+numArticles+"%26start%3D"+indexStart+"%26output%3Drss%22&format=json";
Log.i(TAG, newsUrl);
new NewsLoadingTask().execute(newsUrl);
}
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
});
*/
}