嗨即时通讯在eclipse上制作一个计算器,我正在按照这个教程完成所有内容,就像在视频中一样,但由于某些原因我得到这个"无法从类型活动中对静态方法findViewById(int)进行静态引用"错误
public PlaceholderFragment() {
int counter;
Button add, sub;
TextView display;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
counter = 0;
add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);
display = (TextView) findViewById(R.id.tvDisplay);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter += 1;
display.setText("Your total is " + counter);
}
});
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter -= 1;
display.setText("Your total is " + counter);
}
});
return rootView;
}
}
Run Code Online (Sandbox Code Playgroud)
这个Fragment班没有findViewById()方法; 但是Activity确实如此.编译器抱怨,因为这个Fragment是一个Activity的静态内部类,所以它认为你试图调用该方法.
如果您尝试从Fragment布局获取视图,请更改findViewById()为rootView.findViewById().
如果您尝试从"活动"布局中获取视图,请将其更改为getActivity().findViewById().
(这取决于bAdd按钮的实际位置).
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |