3
4 - + - 4
rootView.findViewById(R.id.listview_forecast);
//this is the ForecastFragment file
package com.example.sumanth.sunshine1.app;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* A placeholder fragment containing a simple view.
*/
public class ForecastFragment extends Fragment {
public ForecastFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView=inflater.inflate(R.layout.fragment_main, container, false);
String[] forecastArray={
"Mon 6/23 - Sunny - 31/17",
"Tue 6/24 - Foggy - 21/8",
"Wed 6/25 - Cloudy - 22/17",
"Thurs 6/26 - Rainy - 18/11",
"Fri 6/27 - Foggy - 21/10",
"Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18",
"Sun 6/29 - Sunny - 20/7"
};
List<String> weekForecast = new ArrayList<String>(Arrays.asList(forecastArray));
ArrayAdapter<String> mForecastAdapter=new ArrayAdapter<String>(
getActivity(),
R.layout.list_item_forecast,
R.id.list_item_forecast_textview,
weekForecast
);
ListView listView=(ListView)
该应用程序正常工作,直到此部分。但是在插入网络代码后,它不会打开(崩溃) //这是fetchweathertask类,即使从上面的类移动网络代码后,应用程序仍然无法在手机上启动
listView.setAdapter(mForecastAdapter);
return rootView;
}
答案 0 :(得分:0)
您需要在manifest.xml文件中包含Internet权限。
<uses-permission android:name="android.permission.INTERNET" />
没有它,您的应用程序将崩溃。
阅读此https://developer.android.com/training/basics/network-ops/connecting.html
我在未经许可的情况下测试了您的代码并且崩溃了。我也经过了许可测试,但没有崩溃。从那开始。
您还有其他事情要做,例如在您的网址字符串中包含API密钥。请记住,您可以在Udacity论坛上发布,目前有数百名学生在同一个项目上工作。