错误: 找不到方法 findViewById(int)
错误: 找不到方法 findViewById(int)
此问题已有答案:
这是fragmentOne.java文件
package piestudio.opinion;
import android.app.Fragment; import android.app.FragmentManager; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.view.MenuItem; /** * Created by jene on 7/4/2016. */ public class FragmentOne extends Fragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener(){ public boolean onNavigationItemSelected(MenuItem Item){ int id = Item.getItemId(); if( id == R.id.toi) { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); FragmentOne FragmentOne = new FragmentOne(); FragmentManager.beginTransaction() .add(R.id.content_frame,FragmentOne,"Times of India") .commit(); drawer.closeDrawer(navigationView); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; } }); } }
我正在遇到以下错误
Error:(19, 64) 错误: 找不到符号方法findViewById(int)
Error:(27, 54) 错误: 找不到符号方法findViewById(int)
Error:(29, 32) 错误: 非静态方法beginTransaction()不能从静态上下文引用
Error:(37, 54) 错误: 找不到符号方法findViewById(int)
admin 更改状态以发布 2023年5月24日
片段没有方法
findViewById
您需要使用getView()
方法。请查看此片段中的findViewById
因此,请将该行更改为:
final NavigationView navigationView = (NavigationView) getView().findViewById(R.id.nav_view);
此外,在片段的生命周期中,在充气片段的布局后/后面与视图一起使用应该在onCreateView方法中。