错误: 找不到方法 findViewById(int)

12 浏览
0 Comments

错误: 找不到方法 findViewById(int)

此问题已有答案:

Fragment中的findViewById

这是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日
0
0 Comments

你可以像这样做:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    View content = view.findViewById(R.id.content);
}

0
0 Comments

片段没有方法

findViewById

您需要使用getView()方法。请查看此片段中的findViewById

因此,请将该行更改为:

final NavigationView navigationView = (NavigationView) getView().findViewById(R.id.nav_view);

此外,在片段的生命周期中,在充气片段的布局后/后面与视图一起使用应该在onCreateView方法中。

0