正确切换caseonclicklistener与片段

时间:2017-01-08 20:01:58

标签: android android-fragments onclicklistener

我似乎无法使我的onclicklistener开关盒工作。 这是一个代码

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

        final View rootView = inflater.inflate(R.layout.levelfirst, container, false);
        ImageView homeb = (ImageView)rootView.findViewById(R.id.homeb);
        TextView one = (TextView)rootView.findViewById(R.id.one);
        TextView two = (TextView)rootView.findViewById(R.id.two);

        rootView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if(view.getId() == R.id.one){

                    Toast.makeText(getActivity(),"its working",Toast.LENGTH_SHORT).show();

                }

            }
        });

在单个项目上设置onclicklistener工作正常,但由于某种原因它无法检测到它。我试过使用开关机箱方法,但它不会返回任何东西。但是,当我尝试记录rootview子项点击时,它会检测onclicklistener本身。

2 个答案:

答案 0 :(得分:1)

如果您希望通过实施* { margin: 10px auto; font-size: 25px; } body { background-color: #202020; font-family: 'Days One', sans-serif; } #output { background: #94AFB5; width: 400px; height: 70px; font-size: 50px; border-radius: 10px; padding-right: 5px; } .calculator { position: relative; text-align: center; width: 410px; height: 520px; padding: 2px; background: #5591C3; border-radius: 15px; font-weight: bold; margin-top: 5%; margin-left: auto; margin-right: auto; } button { margin: 2px; width: 85px; height: 55px; background-color: #084D87; color: #D17900; border-radius: 10px; text-align: center; cursor: pointer; outline: none; border: none; box-shadow: 0 5px #053C6A; padding: 5px; vertical-align: top; } button:active { background-color: #084D87; box-shadow: 0 5px #053C6A; transform: translateY(4px); } #zero { width: 181px; } #ac, #ce { background-color: #EC0000; box-shadow: 0 5px #BC0000; } .last-row { position: absolute; bottom: 16px; left: 31px; } #equals { height: 125px; font-size: 45px; } 覆盖onClick,请使用您的开关案例,如下所示

OnClickListener

答案 1 :(得分:0)

您可以轻松实现View.OnClickListner并覆盖其方法并将您的开关置于其中。 例如:

public class Fragment_treasures extends Fragment implements OnClickListener{

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

                View v = inflater.inflate(R.layout.fragment_treasures, container, false);

                Button b = (Button) v.findViewById(R.id.StartButton);
                b.setOnClickListener(this);
                return v;
            }

            @Override
            public void onClick(View v) {
                switch (v.getId()) {
                case R.id.StartButton:

                    ...

                    break;
                }
            }
        }