2015-06-03 2 views
0

Я не могу понять, что не так с моим кодом и почему мое приложение Sunshine не отображает элементы списка, которые я создал.Android Studio Sunshine App

Большая часть моего кода совпадает с кодом в видеороликах, но некоторые из них по-разному по-другому, поскольку я использую обновленную версию Android Studio. Как отображать данные случайного прогноза в списке? Все, что я получаю при запуске моего кода, - это имя приложения на панели действий.

Ниже перечислены файлы, я закодированные в:

MainActvityFragment.java:

package com.example.ashton.sunshine.app; 

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 


/** 
* A placeholder fragment containing a simple view. 
*/ 
public class MainActivityFragment extends Fragment { 

    private ArrayAdapter<String> mForecastAdapter; 

    public MainActivityFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 

     String[] forecastArray = { 
       "Today - Sunny - 88/63", 
       "Tomorrow - Foggy - 70/46", 
       "Weds - Cloudy - 72/63", 
       "Thurs - Rainy - 64/51", 
       "Fri - Foggy - 70/46", 
       "Sat - Sunny - 76/68" 
     }; 

     List<String> weekForecast = new ArrayList<String>(
       Arrays.asList(forecastArray)); 

     mForecastAdapter = new ArrayAdapter<String>(
       getActivity(), 
       R.layout.list_item_forecast, 
       R.id.list_item_forecast_textview, 
       weekForecast); 

     ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast); 
     listView.setAdapter(mForecastAdapter); 

     return rootView; 
    } 
} 

fragment_main.xml -

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivityFragment"> 

    <ListView 
     android:id="@+id/listview_forecast" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

activity_main.xml -

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/fragment" 
    android:name="com.example.ashton.sunshine.app.MainActivityFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:layout="@layout/fragment_main" /> 

list_item_foreca st.xml -

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:id="@+id/list_item_forecast_textview" /> 

ответ

0

В вашем activity_main.xml, измените FrameLayout на fragment

+0

Я сделал это, и я смотрю на вкладку «Дизайн» в файле activity_main.xml, и он показывает только пустой список с «item1», а затем под «Item 2», а затем под «Item 3» и т. Д. Я думаю, что моя проблема заключается в том, что адаптер неправильно подключает прогнозное изображение правильно. Как подключить их правильно? –

+0

Вкладка «Дизайн» предназначена только для того, чтобы дать представление о том, как все будет выглядеть при запуске приложения. Он не покажет вам данные из вашего прогноза. Чтобы увидеть загружаемые данные, вам нужно запустить приложение. – Navdeep

+0

Я запускал его и, как и раньше, получаю пустой экран с именем приложения в панели действий –

0

Это вопрос openweathermap апи. Это действительно медленное время от времени для бесплатных аккаунтов.

Используйте локальный wifi, который должен ускорить ответ. И попробуйте в другое время суток. Это единственный совет, который я могу вам дать.