【问题标题】:Fragments Implement OnClickListener [duplicate]片段实现 OnClickListener [重复]
【发布时间】:2016-10-20 05:18:12
【问题描述】:

我有这个片段,但我找不到viewbyid。我已经环顾网站,但一无所获。谢谢

public class Course extends Fragment implements OnClickListener

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.course, container, false);
    View button1Button = findViewById(R.id.button_button1);
    button1Button.setOnClickListener(this);
    View button2Button = findViewById(R.id.button_button2);
    button2Button.setOnClickListener(this);
    View button3Button = findViewById(R.id.button_button3);
    button3Button.setOnClickListener(this);
    View button4Button = findViewById(R.id.button_button4);
    button4Button.setOnClickListener(this);
    View button5Button = findViewById(R.id.button_button5);
    button5Button.setOnClickListener(this);
    View button6Button = findViewById(R.id.button_button6);
    button6Button.setOnClickListener(this);
    View button7Button = findViewById(R.id.button_button7);
    button7Button.setOnClickListener(this);
    View button8Button = findViewById(R.id.button_button8);
    button8Button.setOnClickListener(this);
}

谢谢

【问题讨论】:

  • 使用 view.findViewById

标签: android android-studio android-fragments fragment


【解决方案1】:

Fragment 没有方法findViewById(),而是使用您正在膨胀的布局。

改变

View button1Button = findViewById(R.id.button_button1);

View button1Button = view.findViewById(R.id.button_button1);

以及所有其他任务。

【讨论】:

    【解决方案2】:

    只需进行以下更改。它应该在那之后工作。

    Button button8Button = view.findViewById(R.id.button_button8);
    

    【讨论】:

      【解决方案3】:

      简单,你需要在膨胀的view上调用findViewById

      View button1Button = view.findViewById(R.id.button_button1);

      不要忘记在方法结束时返回您的 view 变量。

      【讨论】:

        【解决方案4】:

        应该是这样的。

        public class Course extends Fragment implements OnClickListener
        
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
        
                View view = inflater.inflate(R.layout.course, container, false);
                View button1Button = view.findViewById(R.id.button_button1);
                button1Button.setOnClickListener(this);
                //Other buttons go here
        
                return view;
            }
        }
        

        【讨论】:

          【解决方案5】:

          试试这个希望对你有帮助..

           public class Course extends Fragment implements OnClickListener
          
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          
              View view = inflater.inflate(R.layout.course, container, false);
              Button button1Button = (Button) view.findViewById(R.id.button_button1);
              button1Button.setOnClickListener(this);
              Button button2Button = (Button) view.findViewById(R.id.button_button2);
              button2Button.setOnClickListener(this);
              Button button3Button = (Button) view.findViewById(R.id.button_button3);
              button3Button.setOnClickListener(this);
              Button button4Button = (Button) view.findViewById(R.id.button_button4);
              button4Button.setOnClickListener(this);
              Button button5Button = (Button) view.findViewById(R.id.button_button5);
              button5Button.setOnClickListener(this);
              Button button6Button = (Button) view.findViewById(R.id.button_button6);
              button6Button.setOnClickListener(this);
              Button button7Button = (Button) view.findViewById(R.id.button_button7);
              button7Button.setOnClickListener(this);
              Button button8Button = (Button) view.findViewById(R.id.button_button8);
              button8Button.setOnClickListener(this);
              return view;
          }
          

          【讨论】:

            【解决方案6】:
            1. OnClickListener前面添加ViewView.OnClickListener
            2. findViewById前面添加viewview.findViewById

            试试这个:

                public class Course extends Fragment implements View.OnClickListener{
            
                 @Override
                 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                         Bundle savedInstanceState) {
            
                    View view = inflater.inflate(R.layout.course, container, false);
                    View button1 = view.findViewById(R.id.button_button1);
                    button1.setOnClickListener(this);
                 }
                  ....
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-07-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-12-21
              相关资源
              最近更新 更多