Development Tip

Android : 버튼을 길게 클릭-> 작업 수행

yourdevel 2020. 12. 14. 20:53
반응형

Android : 버튼을 길게 클릭-> 작업 수행


동일한 버튼을 사용하여 두 가지 다른 방법을 수행하고 싶습니다. 사용자가 한 번 클릭 할 때 한 가지 방법과 사용자가 길게 클릭 할 때 두 번째 방법 (다름).

나는 이것을 한 번의 짧은 클릭에 사용합니다 (잘 작동합니다).

Button downSelected = (Button) findViewById(R.id.downSelected);
        downSelected.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                method();
                }
            }

        });

longClickListener를 추가하려고했지만 작동하지 않았습니다.

이 문제를 해결하는 방법에 대한 아이디어를 감사합니다.

감사!


전에 해봤는데 방금 다음을 사용했습니다.

down.setOnLongClickListener(new OnLongClickListener() { 
        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            return true;
        }
    });

문서 별 :

public void setOnLongClickListener (View.OnLongClickListener l)

이후 : API 레벨 1이 뷰를 클릭하고 유지할 때 호출 할 콜백을 등록합니다. 이보기를 길게 클릭 할 수없는 경우 길게 클릭 할 수 있습니다.

부울을 반환해야합니다.이 방법이 작동합니다.


짧은 클릭과 긴 클릭 모두에 반응하는 클릭 가능한 이미지에 대해 두 기능이 모두 작동하도록하기 위해 완벽하게 작동하는 것처럼 보이는 다음을 시도했습니다.

    image = (ImageView) findViewById(R.id.imageViewCompass);
    image.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            shortclick();
        }
     });

    image.setOnLongClickListener(new View.OnLongClickListener() {
    public boolean onLongClick(View v) {
        longclick();
        return true;
    }
});

// 그런 다음 호출되는 함수 :

 public void shortclick()
{
 Toast.makeText(this, "Why did you do that? That hurts!!!", Toast.LENGTH_LONG).show();

}

 public void longclick()
{
 Toast.makeText(this, "Why did you do that? That REALLY hurts!!!", Toast.LENGTH_LONG).show();

}

XML에서 항목을 클릭 가능으로 선언 한 다음 클릭시 호출 할 함수를 정의하는 쉬운 방법은 짧은 클릭에만 적용되는 것 같습니다. 짧은 클릭과 긴 클릭을 구분할 수있는 리스너가 있어야합니다.


처음에 내가 longClick과 두 개의 개별 이벤트를 수행하기 위해 클릭을 구현했을 때 내가 직면 한 문제는 내가 longclick을했을 때 응용 프로그램이 간단한 클릭에 대해 수행 할 작업도 수행했다는 것입니다. 내가 깨달은 해결책은 longClick의 반환 유형을 일반적으로 기본적으로 false 인 true로 변경하는 것입니다. 그것을 변경하면 완벽하게 작동합니다.


클릭 리스너 대신 온 터치 리스너를 사용해보세요.

http://developer.android.com/reference/android/view/View.OnTouchListener.html

참고URL : https://stackoverflow.com/questions/4402740/android-long-click-on-a-button-perform-actions

반응형