无法解析视图寻呼机片段中的方法'findViewById(int)'



你好,我有一个ViewPager的片段:

package my.test.myapplication;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class Fragment1 extends Fragment {
private Button btn;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// point A
return  inflater.inflate(R.layout.frag1,container,false);
}
}

当我在A点下添加它时,它会出现一条错误消息:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// point A
btn = (Button) findViewById(R.id.button);
return  inflater.inflate(R.layout.frag1,container,false);
}

错误消息:

Cannot resolve method 'findViewById(int)'

我能做什么?

如果要访问任何视图,则具有视图对象来访问它。

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view =   inflater.inflate(R.layout.frag1,container,false);
btn = (Button)view.findViewById(R.id.button);
return view;
}

OnViewCreated()方法中尝试以下代码:

btn = (Button) view.findViewById(R.id.button);

试试看

view.findViewById(R.id.expandable);
Fragment

不是Activity的子类。

您必须在Activity对象上调用findViewById(R.id.*id*);

请参阅 API。

你可以这样尝试:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
View rootView = inflater.inflate(R.layout.frag1, container, false);
btn = (Button)rootView.findViewById(R.id.button);
return  rootView ;
}

尝试一下,如果要在fragment中绑定控件,则必须首先使用LayoutInflater将布局放入view,而不是借助该view您可以像这样绑定所有控件

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.frag1,container,false);
btn = (Button) rootView.findViewById(R.id.button);
return rootView  ;
}

最新更新