Ich bin ein Anfänger und bürste meine Fähigkeiten in der App-Entwicklung. Ich mache gerade ein Beispiel, in dem eine Liste von String Array gefüllt wird. In den letzten Schritten findet die Bindung statt und hier wird die Methode "findviewbyid" nicht gefunden und erscheint nach dem Erstellen rot. Kann mich jemand dazu führen?

public MainActivityFragment() {
}

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

    ArrayList<String> weather = new ArrayList<String>();
    weather.add("Today-Sunny-80/23");
    weather.add("Tomorrow-Sunny-83/23");
    weather.add("Fri-Sunny-80/23");
    weather.add("Sat-Rainy-80/23");
    weather.add("Sun-Sunny-80/23");
    weather.add("Mon-Foggy-80/23");

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

    ListView listView = (ListView) findViewByID(R.id.listView_Forecast);
    listView.setAdapter(adapter);

    return inflater.inflate(R.layout.fragment_main, container, false);
0
Zaraf 3 Jän. 2016 im 08:10

2 Antworten

Beste Antwort

Zuallererst sollte findViewByID findViewById sein (Kleinbuchstaben d)

Richten Sie für ein Fragment Ihre Ansichten in onCreateView wie folgt ein

// Call the layout inflater first
View view = inflater.inflate(R.layout.fragment_main, container, false);
// Initialize your views
ListView listView = (ListView) view.findViewById(R.id.listView_Forecast);
listView.setAdapter(adapter);

// Do the rest of your code
...
return view;
2
Andrew Brooke 3 Jän. 2016 im 05:15

Veränderung

return inflater.inflate(R.layout.fragment_main, container, false);

Zu

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

Fügen Sie dann Ihren Code hinzu, um Ihre Listenansicht wie folgt zu initialisieren ...

ListView listView = (ListView) view.findViewById(R.id.listView_Forecast);
listView.setAdapter(adapter);
0
Rishad Appat 3 Jän. 2016 im 05:14