首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单Rss2安卓

简单Rss2安卓
EN

Stack Overflow用户
提问于 2018-01-10 06:25:37
回答 1查看 93关注 0票数 0

我正在学习格兰特·克利马提斯( Grant Klimaytys )与安卓工作室( Android )分享技能的在线课程,以及如何从头开始设置一个简单的RSS提要应用程序。我已经到了他在github上集成Salendron的简单的Rss2安卓jar的地步。我遵循他的指示,将jar添加为我的应用程序库,并将示例代码复制并粘贴到主activity.java文件中的正确位置,但当我去运行调试时,我没有看到他在教程中的log.d输出。我搜索了很远,没有其他人谈论过有同样的问题。我正试图坚持尽可能紧密的教程,但我担心,因为它是2岁,只是可能有一些不兼容,我不知道。

不管怎样,这是我的MainActivity.java的代码

代码语言:javascript
复制
package com.katsthings.personalrssfeed;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

import java.util.List;

import at.theengine.android.simple_rss2_android.RSSItem;
import at.theengine.android.simple_rss2_android.SimpleRss2Parser;
import at.theengine.android.simple_rss2_android.SimpleRss2ParserCallback;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           Intent intent = new Intent(fab.getContext(), AddFeedActivity.class);
           startActivity(intent);

        }
    });
    SimpleRss2Parser parser = new SimpleRss2Parser("http://pingeb.org/feed",
            new SimpleRss2ParserCallback() {
                @Override
                public void onFeedParsed(List<RSSItem> items) {
                    for(int i = 0; i < items.size(); i++){
                        Log.d("SimpleRss2ParserDemo",items.get(i).getTitle());
                    }
                }
                @Override
                public void onError(Exception ex) {
                   // Toast.makeText(mContext, ex.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
    parser.parseAsync();
}

在logcat中,我应该看到D/SimpleRss2ParseDemo,但不幸的是,我没有看到。

EN

回答 1

Stack Overflow用户

发布于 2018-11-03 16:32:34

您可能抛出了一个异常,但是由于您在onError()方法中注释掉了Toast,所以您永远看不到任何东西。

我发现这个库不能很好地处理HTTP->HTTPS重定向。当我在演示程序中使用位于http://pingeb.org/feed的RSS示例时,由于输入流为空,它抛出了一个RuntimeException。

当我将URL扔到浏览器中时,我看到它重定向到网站的HTTPS版本。我将代码中的URL更改为“https://pingeb.org/feed”,一切运行良好。

代码语言:javascript
复制
SimpleRss2Parser parser = new SimpleRss2Parser("https://pingeb.org/feed",
        new SimpleRss2ParserCallback() {
            @Override
            public void onFeedParsed(List<RSSItem> items) {
                for(int i = 0; i < items.size(); i++){
                    Log.d("SimpleRss2ParserDemo",items.get(i).getTitle());
                }
            }
            @Override
            public void onError(Exception ex) {
               Toast.makeText(mContext, ex.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
parser.parseAsync();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48181452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档