为fragment中的变量声明,初始化和setOnClickListener

时间:2017-11-08 02:52:47

标签: java android android-fragments

我一直在寻找堆栈3天,仍然无法解决这个问题。我可能没有找到适当的区域,所以如果这个问题在某个地方已经有一个半直接的​​答案,请告诉我。

基本上,我有一个标签式活动,我为每个标签创建了片段,现在我意识到,在搜索了3天的问题和答案之后,将按钮链接到java文件就像使用不同的语法。 /> 我试图让这个按钮在点击之后简单地消失但是我一直得到错误,说它是从内部类中访问的并且需要是最终的?

请帮我解决这个问题,相当新的编码(代表正好是1)试图不立即降低它。
任何帮助表示赞赏!

imports (there's a lot of unused ones..)

code for button and onCreate class and everything I've really done so far..(which isn't much)

4 个答案:

答案 0 :(得分:1)

尝试按照这样声明按钮:

final Button buttonOS = (Button) rootView.findViewById(R.id.buttonOS);

此外,您应该将逻辑从onCreateView()移至onStart()。您的按钮尚未创建,因此getView()

可能会出现空错误

顺便说一下,如果单击将光标移至错误,可以按Alt + Enter打开自动更正菜单。

答案 1 :(得分:1)

您可以使用v.setVisibility(View.GONE)

您不一定需要按钮参考

答案 2 :(得分:0)

尝试在onViewCreated而不是onCreateView中执行此操作:

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

答案 3 :(得分:0)

  

试试这个...首先声明全局变量

View view;
Button button;
  

在你的onCreateView

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

 button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    //do something here (click function)
    }
});