728x90

Fragment와 Activity에서 버튼이벤트를 발생시키는것은 조금 다르다. (Fragment는 android:onClick)를 사용x )

 

프래그먼트에서는 OnClickListener를 상속받아서 구현해줘야함. onClick메소드를 오버라이드 해줘야함

 

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    Log.d("jinsoltest","oncreateview 설취");
    View view = inflater.inflate(R.layout.fragment_search,container,false);
    edit1 = (EditText) view.findViewById(R.id.edit1);
    edit2 = (EditText) view.findViewById(R.id.edit2);
    Button btn_test = (Button) view.findViewById(R.id.btn_jinsol);

    btn_test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addanimal(edit1.getText().toString(),edit2.getText().toString());
        }
    });
    //이부분 중요
    return view;
}

 

이런식으로 코드를 짯을때 버튼이벤트가 발생하지않는다면

 

다음과같이 상속을받아 구현해보자.

 

 

public class SlideshowFragment extends Fragment implements View.OnClickListener {

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

        View root = inflater.inflate(R.layout.fragment_slideshow, container, false);


        Button btn123 = root.findViewById(R.id.button1);
        btn123.setOnClickListener(this);
                
    }


    @Override
    public void onClick(View v) {
        switch(v.getId())
        {
            case R.id.top_layout:
            {
                if(isAvisiable) layout1.setVisibility(View.GONE);
                else layout1.setVisibility(View.VISIBLE);
                break;
            }

        }
    }
}

 

728x90

+ Recent posts