即时通讯在android中使用片段我在这个片段中有一个CustomersFragment
名称的片段使用findViewById
方法我在onCreateView
上使用此方法没问题,但是当我使用{时{1}}函数有错误,这是我底部的片段代码
public void
答案 0 :(得分:4)
Android开发人员通常使用两个名为findViewById()
的方法。其中一个是Activity
类的一部分,通常像这样调用:
public void myMethod() {
View myView = findViewById(R.id.myView);
}
另一个是View
类的一部分,通常像这样调用:
public void myMethod(View root) {
View myView = root.findViewById(R.id.myView);
}
但是,findViewById()
类中没有Fragment
方法,因此您必须使用View
方法。您已经在onCreateView()
:
@Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_customers, null); Button btnAdd = (Button) view.findViewById(R.id.btn_add); ^^^^^^^^^^^^^^^^^
然而,稍后你就有了这个:
public void editEmployee(Employee employee) { findViewById(R.id.lin_add_search).setVisibility(View.GONE); ^^^^^^^^^^^^
同样,Fragment
类没有findViewById()
方法,所以这不会编译。通常,解决方法是调用getView().findViewById()
。 getView()
方法返回从View
返回的相同onCreateView()
实例,因此它可以正常工作。
这样的事情:
public void editEmployee(Employee employee) {
getView().findViewById(R.id.lin_add_search).setVisibility(View.GONE);