【问题标题】:Simple Rss2 Android简单的 Rss2 安卓
【发布时间】:2018-01-10 06:25:37
【问题描述】:

我正在关注 Grant Klimaytys 的在线课程,该课程是关于与 Android Studio 的技能分享,以及如何从头开始设置一个简单的 RSS 提要应用程序。好吧,我已经到了他在 github 上集成了 Salendron 的 Simple Rss2 Android jar 的地步。我已经按照他的指示将 jar 添加为我的应用程序的库以及将示例代码复制并粘贴到我的主要 activity.java 文件中的正确位置但是当我去运行调试时我是没有看到他在教程中的 log.d 输出。我进行了广泛的搜索,没有任何其他人在谈论有同样的问题。我试图尽可能地坚持本教程,但我担心由于它已有 2 年历史,可能存在一些我不知道的不兼容性。

这里是我的 MainActivity.java 中的代码

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,但不幸的是我没有。

【问题讨论】:

  • 您可能收到了 RuntimeException 错误消息,但您的 onError() 代码已被注释掉,因此您什么也看不到。

标签: java android android-studio rss2


【解决方案1】:

很可能你抛出了一个异常,但是因为你在 onError() 方法中注释掉了 Toast,所以你什么都看不到。

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

当我将 URL 扔进浏览器时,我看到它被重定向到网站的 HTTPS 版本。我将代码中的 URL 更改为 https://pingeb.org/feed",一切正常。

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();

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2013-11-30
    • 2012-08-15
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多