无法解析方法显示(android.support.v4.app FragmentManager,java.lang.string)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32605774/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
cannot resolve method show(android.support.v4.app FragmentManager,java.lang.string)
提问by james
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
试图ListView
在android studio中创建一个片段并收到错误
cannot resolve method show(android.support.v4.app FragmentManager,java.lang.string)
无法解析方法显示(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
错误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
}
});
}
}
回答by Semyon Danilov
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()
我想你正在使用android.app.DialogFragment
而不是android.support.v4.app.DialogFragment
. 只需PlayersFragment
从支持库的android.support.v4.app.DialogFragment
. 或者,如果您不针对旧设备,则可以更改getSupportFragmentManager()
为getFragmentManager()
回答by user5775240
You have to import android.support.v4.app.DialogFragment
on the class PlayersFragment
and then change getSupportFragmentManager()
to getFragmentManager()
.
您必须android.support.v4.app.DialogFragment
在类上导入PlayersFragment
,然后更改getSupportFragmentManager()
为getFragmentManager()
.