Java 使用bufferedreader和delimiter读取多个链接
我正在尝试从文本文件加载多个url rss链接。到目前为止,它只能从文件中加载一个链接。我尝试使用分隔符,但似乎不起作用。感谢您的帮助 代码 RssFragmentJava 使用bufferedreader和delimiter读取多个链接,java,android,bufferedreader,delimiter,Java,Android,Bufferedreader,Delimiter,我正在尝试从文本文件加载多个url rss链接。到目前为止,它只能从文件中加载一个链接。我尝试使用分隔符,但似乎不起作用。感谢您的帮助 代码 RssFragment public class RssFragment extends Fragment implements OnItemClickListener { private ProgressBar progressBar; private ListView listView; private View view; @Override
public class RssFragment extends Fragment implements OnItemClickListener
{
private ProgressBar progressBar;
private ListView listView;
private View view;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (view == null)
{
view = inflater.inflate(R.layout.fragment_layout, container, false);
progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
listView = (ListView) view.findViewById(R.id.listView);
listView.setOnItemClickListener(this);
startService();
}
else
{
ViewGroup parent = (ViewGroup) view.getParent();
parent.removeView(view);
}
return view;
}
private void startService()
{
Intent intent = new Intent(getActivity(), RssService.class);
intent.putExtra(RssService.RECEIVER, resultReceiver);
getActivity().startService(intent);
}
private final ResultReceiver resultReceiver = new ResultReceiver(new Handler())
{
@SuppressWarnings("unchecked")
@Override
protected void onReceiveResult(int resultCode, Bundle resultData)
{
progressBar.setVisibility(View.GONE);
List<RssItem> items = (List<RssItem>) resultData.getSerializable(RssService.ITEMS);
if (items != null)
{
RssAdapter adapter = new RssAdapter(getActivity(), items);
listView.setAdapter(adapter);
}
else
{
Toast.makeText(getActivity(), "An error occured while downloading the rss feed.",
Toast.LENGTH_LONG).show();
}
};
};
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
RssAdapter adapter = (RssAdapter) parent.getAdapter();
RssItem item = (RssItem) adapter.getItem(position);
Uri uri = Uri.parse(item.getLink());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
public类rssframent扩展了片段实现的McClickListener
{
私人ProgressBar ProgressBar;
私有列表视图列表视图;
私人视野;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRetainInstance(真);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
如果(视图==null)
{
视图=充气机。充气(R.layout.fragment\u布局,容器,假);
progressBar=(progressBar)view.findViewById(R.id.progressBar);
listView=(listView)view.findViewById(R.id.listView);
setOnItemClickListener(this);
startService();
}
其他的
{
ViewGroup parent=(ViewGroup)view.getParent();
parent.removeView(视图);
}
返回视图;
}
私有void startService()
{
Intent Intent=新的Intent(getActivity(),RssService.class);
intent.putExtra(RssService.RECEIVER、resultReceiver);
getActivity().startService(intent);
}
私有最终ResultReceiver ResultReceiver=新ResultReceiver(新处理程序())
{
@抑制警告(“未选中”)
@凌驾
ReceiveResult上的受保护无效(int-resultCode、Bundle-resultData)
{
progressBar.setVisibility(View.GONE);
列表项=(列表)resultData.getSerializable(RssService.items);
如果(项!=null)
{
RssAdapter adapter=新的RssAdapter(getActivity(),items);
setAdapter(适配器);
}
其他的
{
Toast.makeText(getActivity(),“下载rss源时出错。”,
Toast.LENGTH_LONG).show();
}
};
};
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
RssAdapter adapter=(RssAdapter)parent.getAdapter();
RssItem项=(RssItem)适配器.getItem(位置);
Uri=Uri.parse(item.getLink());
意图=新意图(Intent.ACTION\u视图,uri);
星触觉(意向);
}
}
如何将解析结果添加到列表中,以及如何打印它们?(我们可以看到parse()方法吗?)您可以共享Raw/xml文件吗。只是想看看您是如何将数据保存在内部的分隔符代码在哪里???…您可以尝试下面的代码:while((line=br.readLine())!=null){rsslink.append(line);}String[]arr=rsslink.toString().split(;);对于(inti=0;ihttp://www.engadget.com/rss.xml; http://www.pcworld.com/index.rss; http://feeds.feedburner.com/SpoonForkBacon?format=xml;
public class RssFragment extends Fragment implements OnItemClickListener
{
private ProgressBar progressBar;
private ListView listView;
private View view;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (view == null)
{
view = inflater.inflate(R.layout.fragment_layout, container, false);
progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
listView = (ListView) view.findViewById(R.id.listView);
listView.setOnItemClickListener(this);
startService();
}
else
{
ViewGroup parent = (ViewGroup) view.getParent();
parent.removeView(view);
}
return view;
}
private void startService()
{
Intent intent = new Intent(getActivity(), RssService.class);
intent.putExtra(RssService.RECEIVER, resultReceiver);
getActivity().startService(intent);
}
private final ResultReceiver resultReceiver = new ResultReceiver(new Handler())
{
@SuppressWarnings("unchecked")
@Override
protected void onReceiveResult(int resultCode, Bundle resultData)
{
progressBar.setVisibility(View.GONE);
List<RssItem> items = (List<RssItem>) resultData.getSerializable(RssService.ITEMS);
if (items != null)
{
RssAdapter adapter = new RssAdapter(getActivity(), items);
listView.setAdapter(adapter);
}
else
{
Toast.makeText(getActivity(), "An error occured while downloading the rss feed.",
Toast.LENGTH_LONG).show();
}
};
};
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
RssAdapter adapter = (RssAdapter) parent.getAdapter();
RssItem item = (RssItem) adapter.getItem(position);
Uri uri = Uri.parse(item.getLink());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}