简体   繁体   中英

cannot resolve method show(android.support.v4.app FragmentManager,java.lang.string)

 import android.app.DialogFragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; /** * Created by jamie on 9/12/2015. */ public class PlayersFragment extends DialogFragment { ListView lv; String[] players = {"arteta", "costa", "reid", "degea", "rooney", "terry"}; int[] images = {R.drawable.arteta, R.drawable.costa, R.drawable.reid, R.drawable.degea, R.drawable.rooney, R.drawable.terry}; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.dialog, container, false); //initialize listview lv = (ListView) rootView.findViewById(R.id.listView1); //set dialog title getDialog().setTitle("Soccer SuperStars"); //create adapter obj and set list view to it Adapter adapter = new Adapter(getActivity(), players, images); lv.setAdapter(adapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int pos, long id) { Toast.makeText(getActivity(), players[pos], Toast.LENGTH_SHORT).show(); } }); return rootView; } } 

Trying to create a ListView fragment in android studio and getting error

cannot resolve method show(android.support.v4.app FragmentManager,java.lang.string)

the error is on the p.show(fm,"Players Fragment) underlined in red, tried to resolve this but getting nowhere, i would really appreciate a solution to this! thank you

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.widget.Button;




public class MainActivity extends FragmentActivity {

    Button showBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         final FragmentManager fm =getSupportFragmentManager();
         final PlayersFragment p=new PlayersFragment();

        showBtn=(Button)findViewById(R.id.button1);
        showBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                p.show(fm,"Players Fragment");   //error is here
            }

        });
    }
}

I suppose you are using android.app.DialogFragment and not android.support.v4.app.DialogFragment . Just extend PlayersFragment from support library's android.support.v4.app.DialogFragment . Or, if you are not targeting old devices, you can change getSupportFragmentManager() to getFragmentManager()

您必须在PlayersFragment类上导入android.support.v4.app.DialogFragment ,然后将getSupportFragmentManager()更改为getFragmentManager()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM