web-dev-qa-db-fra.com

Impossible de résoudre la méthode 'add (int, com.example. **. Beatle.app.MainActivity.PlaceholderFragment)

package com.example.**.beatle.app;

import Android.app.Fragment;
import Android.os.Bundle;
import Android.support.v4.app.FragmentActivity;
import Android.view.LayoutInflater;
import Android.view.Menu;
import Android.view.MenuItem;
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;


public class MainActivity extends FragmentActivity   {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(savedInstanceState==null)
    {
        getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public static class PlaceholderFragment extends Fragment {

    private ArrayAdapter<String> mForecastAdapter;


    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", "Tommorrow-windy-88/94", "wed-aloo-alooo"};
        List<String> weekForecast = new ArrayList<String>(Arrays.asList(forecastArray));
        mForecastAdapter = new ArrayAdapter<String>(getActivity(), R.layout.fragment_main, R.id.list_item_forecast_textview, weekForecast);
        ListView listView = (ListView) rootView.findViewById(R.id.list_view_forecast);
        listView.setAdapter(mForecastAdapter);
        return rootView;

    }
}}

Messages Gradle Build Erreur: (27, 59) erreur: aucune méthode appropriée n'a été trouvée pour add (int, PlaceholderFragment) La méthode FragmentTransaction.add (Fragment, String) n'est pas applicable (argument mismatch; int ne peut pas être converti en fragment) La méthode FragmentTransaction.add (int, Fragment) n'est pas applicable (mismatch d'argument; PlaceholderFragment ne peut pas être converti en fragment) Remarque: Certains messages ont été simplifiés. recompiler avec -Xdiags: verbose pour obtenir une sortie complète Erreur: L'exécution a échoué pour la tâche ': app: compileDebugJava' . La compilation a échoué. voir la sortie d'erreur du compilateur pour plus de détails.

15
JSONParser

Vous utilisez FragmentActivity et getSupportFragmentManager(). Par conséquent, PlaceholderFragment doit hériter de Android.support.v4.app.Fragment et non de Android.app.Fragment.

38
CommonsWare

Utilisation 

 import Android.support.v4.app.Fragment; 

au lieu de 

import Android.app.Fragment;

Partout dans le projet.

Utilisez également la bibliothèque de support pour FragmentManager et FragmentTransaction.

3
maa

Si vous utilisez AndroidX d’Android Jetpack, utilisez,

androidx.fragment.app.Fragment

au lieu de,

import Android.app.Fragment;
// or
import Android.support.v4.app.Fragment;
0