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
'Development Tip' 카테고리의 다른 글
printf에서`% p`는 어디에 유용합니까? (0) | 2020.12.14 |
---|---|
C # 숫자 열거 형 값 (문자열) (0) | 2020.12.14 |
ASP.NET WebApi : WebApi HttpClient를 사용하여 파일 업로드로 멀티 파트 게시를 수행하는 방법 (0) | 2020.12.14 |
SQL에서 Union All과 함께 Order by를 사용하는 방법은 무엇입니까? (0) | 2020.12.14 |
RecyclerView 및 SwipeRefreshLayout (0) | 2020.12.14 |