java - 无法解析方法 show(android.support.v4.app FragmentManager,java.lang.string)

标签 java android android-fragments

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;


    }



}

尝试在 android studio 中创建一个 ListView fragment 并获取 错误

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

错误是在 p.show(fm,"Players Fragment) 上用红色下划线标出的,试图解决这个问题但无济于事,我真的很感激这个问题的解决方案!谢谢

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
            }

        });
    }
}

最佳答案

我想您使用的是 android.app.DialogFragment 而不是 android.support.v4.app.DialogFragment。只需从支持库的 android.support.v4.app.DialogFragment 扩展 PlayersFragment。或者,如果您不针对旧设备,则可以将 getSupportFragmentManager() 更改为 getFragmentManager()

关于java - 无法解析方法 show(android.support.v4.app FragmentManager,java.lang.string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32605774/

相关文章:

android - MediaController 不在 ViewPager 中滑动

java - 关于 Eclipse 中 lib 文件夹的一个简单问题

java - Android 中的 ArrayList 返回不需要的结果

java - 如何拥有一个带有2个接口(interface)的Spring动态代理?

具有 multidex 的 Android 应用程序(Xamarin Forms) - 启动如此缓慢

java - 使用 Sherlock ActionBar、Fragment Tab、ViewPager、PreferenceActivity

java - 如何删除任何字符串末尾的逗号

java - 在类之间传递数组值

android - React Native CLI 无法确定 Android 项目配置

android - getWidth() & getHeight() 在 RecyclerView/Fragment 中返回 0