如果站点不可用,Android应用程序将崩溃
如果网站不可用,我的应用程序将崩溃。如何修复它如果站点不可用,Android应用程序将崩溃,android,crash,Android,Crash,如果网站不可用,我的应用程序将崩溃。如何修复它 Intent FirstIntent = new Intent().setClass(this, RssChannelActivity.class); FirstIntent.putExtra("rss-url", "http://rss-link"); String FirstTabName = getResources().getString(R.string.tab_1); TabSpec FirstTabS
Intent FirstIntent = new Intent().setClass(this, RssChannelActivity.class);
FirstIntent.putExtra("rss-url", "http://rss-link");
String FirstTabName = getResources().getString(R.string.tab_1);
TabSpec FirstTabSpec = tabHost.newTabSpec(FirstTabName)
.setIndicator(FirstTabName, getResources().getDrawable(R.drawable.rss_tab_1))
.setContent(FirstIntent);
tabHost.addTab(FirstTabSpec);
异步任务:
@Override
protected List<RssItem> doInBackground(String... urls) {
try {
// Create RSS reader
RssReader rssReader = new RssReader(urls[0]);
// Parse RSS, get items
return rssReader.getItems();
} catch (Exception e) {
Log.e("RssChannelActivity", e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(List<RssItem> result) {
// Get a ListView from the RSS Channel view
ListView itcItems = (ListView) findViewById(R.id.rssChannelListView);
// Create a list adapter
ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(local,android.R.layout.simple_list_item_1, result);
// Set list adapter for the ListView
itcItems.setAdapter(adapter);
// Set list view item click listener
itcItems.setOnItemClickListener(new ListListener(result, local));
}
您需要在
onPostExecute()
中验证结果是否为空。最好先检查这样的变量是否已初始化,然后再使用它们来防止出现NullPointerException
@Override
protected void onPostExecute(List<RssItem> result) {
if (result == null) {
// Do something when no result is found
return;
}
// Get a ListView from the RSS Channel view
ListView itcItems = (ListView) findViewById(R.id.rssChannelListView);
// Create a list adapter
ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(local,android.R.layout.simple_list_item_1, result);
// Set list adapter for the ListView
itcItems.setAdapter(adapter);
// Set list view item click listener
itcItems.setOnItemClickListener(new ListListener(result, local));
}
@覆盖
受保护的void onPostExecute(列表结果){
如果(结果==null){
//找不到结果时做点什么
回来
}
//从RSS频道视图获取列表视图
ListView itcItems=(ListView)findViewById(R.id.rssChannelListView);
//创建一个列表适配器
ArrayAdapter=新的ArrayAdapter(local,android.R.layout.simple\u list\u item\u 1,result);
//为ListView设置列表适配器
设置适配器(适配器);
//设置列表视图项单击侦听器
setOnItemClickListener(新的ListListener(结果,本地));
}
然后发布日志。现在发布您的RssChannelActivity
code。@SimplePlan签入post方法,如adapter.getCount()大于零?onPostExecute。。。例如?请参阅我的编辑。当适配器为空时,您正在适配器中使用result
。在尝试引用它之前,需要首先检查它是否为null。
@Override
protected void onPostExecute(List<RssItem> result) {
if (result == null) {
// Do something when no result is found
return;
}
// Get a ListView from the RSS Channel view
ListView itcItems = (ListView) findViewById(R.id.rssChannelListView);
// Create a list adapter
ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(local,android.R.layout.simple_list_item_1, result);
// Set list adapter for the ListView
itcItems.setAdapter(adapter);
// Set list view item click listener
itcItems.setOnItemClickListener(new ListListener(result, local));
}