我正在学习格兰特·克利马提斯( Grant Klimaytys )与安卓工作室( Android )分享技能的在线课程,以及如何从头开始设置一个简单的RSS提要应用程序。我已经到了他在github上集成Salendron的简单的Rss2安卓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,但不幸的是,我没有看到。
发布于 2018-11-03 16:32:34
您可能抛出了一个异常,但是由于您在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();https://stackoverflow.com/questions/48181452
复制相似问题