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 无法将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

说明资源路径位置类型 类型A中的方法setOnScrollListener(AbsListView.OnScrollListener)
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) {}
        });

        */

}