java.lang.IllegalArgumentException:找不到id为0x7f0c0098的视图
我有一个NBA球队的列表,可以正常工作并正确填写球队列表,但是当我点击列表中的一个项目时,它会膨胀另一个片段以显示所选球队的描述,但当我点击时,找不到片段描述id 我使用了两个列表片段,一个用于团队,另一个用于球员,为此我使用了一个ViewPager和一个占位符片段(由Android Studio自动生成),我认为这是因为布局时没有夸大片段描述:/ 例外情况:java.lang.IllegalArgumentException:找不到id为0x7f0c0098的视图,java,android,Java,Android,我有一个NBA球队的列表,可以正常工作并正确填写球队列表,但是当我点击列表中的一个项目时,它会膨胀另一个片段以显示所选球队的描述,但当我点击时,找不到片段描述id 我使用了两个列表片段,一个用于团队,另一个用于球员,为此我使用了一个ViewPager和一个占位符片段(由Android Studio自动生成),我认为这是因为布局时没有夸大片段描述:/ 例外情况: E/AndroidRuntime: FATAL EXCEPTION: main Process: es.ie
E/AndroidRuntime: FATAL EXCEPTION: main
Process: es.iesnervion.ejercicio52, PID: 7432
java.lang.IllegalArgumentException: No view found for id 0x7f0c0098 (es.iesnervion.ejercicio52:id/fragment_descriptions) for fragment DescriptionFragment{8f04b31 #4 id=0x7f0c0098}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1107)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:541)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
XML
占位符片段
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = null;
if (getArguments().getInt(ARG_SECTION_NUMBER) == 1) {
rootView = inflater.inflate(R.layout.fragment_teams, container, false);
// Comprobación del tipo de pantalla en la que está, para ello llamamos a el fragment team
// (el .xml que deberia de salir en caso de que sea un movil y si no esta nulo significa
// que es un movil, si de lo contrario sale una table se iniciará el otro .xml de sw620dp
if (rootView.findViewById(R.id.fragment_team_movil) != null) {
// Comprobamos si viene de un estado onStoped osea que sea la primera vez que se
// ejecuta o no
if (savedInstanceState != null)
return rootView;
// Creamos una instancia del fragment lista y lo añadimos en la actividad destinada
// para el movil.
ListTeams list = new ListTeams();
Intent it = new Intent();
it = getActivity().getIntent();
if (manager != null)
it.putExtra(PlayerManager.PLAYERMANAGER_NAME_KEY, manager);
list.setArguments(it.getExtras());
// Con FragmentManager podremos interactuar entre el fragment_movil y la clase list
// gracias a esto pondremos todos las propiedades preparada de ese
// fragment en el fragment
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.fragment_team_movil, list)
.commit();
}
如果你需要更多的东西,请告诉我知道或访问,以及页面
谢谢:)我一整天都在犯错误:(我快速查看了github上的项目,我想你应该用这一行替换这一行
transaction.replace(R.id.fragment\u description,newDescriptionFragment);
transaction.replace(R.id.fragment\u team\u movil,newDescriptionFragment)
在您的MainActivity.java
我在github上快速查看了该项目,我认为您应该替换这一行
事务。替换(R.id.fragment\u descriptionFragment,newDescriptionFragment)使用此
事务。替换(R.id.fragment\u team\u movil,newDescriptionFragment);
不客气。请注意,您在两个文件夹中有两个布局文件fragment_teams.xml-layout和layout-sw620dp。后一个文件夹中的布局文件包括带有id fragment_说明的片段,但layout/fragment_teams.xml不包含具有此id的片段(任何片段)。谢谢,我找不到错误已经饱和:)不客气。还要小心,在两个文件夹中有两个布局文件fragment_teams.xml-layout和layout-sw620dp。后面提到的文件夹中的布局文件包含id为fragment_description的片段,但layout/fragment_teams.xml不包含具有此id的片段(任何片段)。
@Override
public void onTeamSelected(Team team) {
DescriptionFragment descriptionFragment = (DescriptionFragment) getSupportFragmentManager()
.findFragmentById(R.id.fragment_descriptions);
if (descriptionFragment != null) {
descriptionFragment.updateDescriptionView(team);
} else {
DescriptionFragment newDescriptionFragment = new DescriptionFragment();
Bundle args = new Bundle();
args.putParcelable(DescriptionFragment.ARG_TEAM, team);
newDescriptionFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_descriptions, newDescriptionFragment);
//Añade a la pila el fragment
transaction.addToBackStack(null);
transaction.commit();
}
}
protected void onResume() {
super.onResume();
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
if (manager != null)
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), manager);
else {
manager = new PlayerManager();
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
}
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Edited Cambiar a false para eliminar el boton atras
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setVisibility(View.INVISIBLE);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent it = new Intent(MainActivity.this, AddPlayer.class);
startActivityForResult(it, AddPlayer.ADDPLAYER_REQUEST);
}
});
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = null;
if (getArguments().getInt(ARG_SECTION_NUMBER) == 1) {
rootView = inflater.inflate(R.layout.fragment_teams, container, false);
// Comprobación del tipo de pantalla en la que está, para ello llamamos a el fragment team
// (el .xml que deberia de salir en caso de que sea un movil y si no esta nulo significa
// que es un movil, si de lo contrario sale una table se iniciará el otro .xml de sw620dp
if (rootView.findViewById(R.id.fragment_team_movil) != null) {
// Comprobamos si viene de un estado onStoped osea que sea la primera vez que se
// ejecuta o no
if (savedInstanceState != null)
return rootView;
// Creamos una instancia del fragment lista y lo añadimos en la actividad destinada
// para el movil.
ListTeams list = new ListTeams();
Intent it = new Intent();
it = getActivity().getIntent();
if (manager != null)
it.putExtra(PlayerManager.PLAYERMANAGER_NAME_KEY, manager);
list.setArguments(it.getExtras());
// Con FragmentManager podremos interactuar entre el fragment_movil y la clase list
// gracias a esto pondremos todos las propiedades preparada de ese
// fragment en el fragment
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.fragment_team_movil, list)
.commit();
}