안드로이드 용 커버 플로우 앱에 OnItemClickListener를 추가하려고합니다. 이미지를 앞뒤로 스크롤 할 수 있고 내가 추가하고자하는 부분이 클릭 리스너 였기 때문에 이미지 중 하나를 클릭하고 다른 활동으로 이동할 수 있습니다. 당신이 OnItemClick을리스트 뷰나 이미지로 채워진 gridview에 추가하는 것과 같은 방식으로 작동한다고 추측합니다. 나는이 질문이 이전에 요청되었지만,이 경우는 다르다는 것을 이해합니다. 앱에 이해가되지 않는 추가 코드가 있습니다.미스터리 알 수없는 외계인 인터페이스를 구현하는 OnItemClickListener
CoverAdapterView.java // 클래스가 확장 어댑터와 뷰 그룹 클래스
GestureDetector.OnGestureListener을이 CoverAbsSpinner를 확장 및 구현 // CoverFlow.java : 코드 http://www.inter-fuser.com/2010/01/android-coverflow-widget.html에서오고이 응용 프로그램은 다음과 같은 네 개의 자바 클래스를 가지고 그 다음에 할 일이다
CoverAbsSpinner.java는 //이 클래스는
이 CoverFlowExample.java // 활동을
과 확장 CoverAdapterView.java를 확장 이상한 것은 CoverAdapterView.java 클래스에있는 아래 코드와 같습니다. 클래스 중간에 쓸모없는 인터페이스가있는 것처럼 보이게 배치하는 것은 의미가 없습니다. "이 AdapterView의 항목을 클릭 할 때 호출 될 콜백 메소드"라고 표시됩니다.
이것은 방법의 신비입니다. 어떻게 이걸 "부르세요"? 실제로 OnItemClickListener를 준비 했습니까? 내가이 일을 무시하거나 뭐야?
이 코드가 아직 이해되지 않았기 때문에? 누구든지이 목적이 무엇인지 압니까? 어쨌든 구현하거나 대체해야하는 인터페이스입니다. 그래서 나는 이것의 목적에 의문을 제기한다.
public interface OnItemClickListener {
/**
* Callback method to be invoked when an item in this AdapterView has
* been clicked.
* <p>
* Implementers can call getItemAtPosition(position) if they need
* to access the data associated with the selected item.
*
* @param parent The AdapterView where the click happened.
* @param view The view within the AdapterView that was clicked (this
* will be a view provided by the adapter)
* @param position The position of the view in the adapter.
* @param id The row id of the item that was clicked.
*/
void onItemClick(CoverAdapterView<?> parent, View view, int position, long id);
}
/**
* Register a callback to be invoked when an item in this AdapterView has
* been clicked.
*
* @param listener The callback that will be invoked.
*/
public void setOnItemClickListener(OnItemClickListener listener) {
mOnItemClickListener = listener;
}
/**
* @return The callback to be invoked with an item in this AdapterView has
* been clicked, or null id no callback has been set.
*/
public final OnItemClickListener getOnItemClickListener() {
return mOnItemClickListener;
}
/**
* Call the OnItemClickListener, if it is defined.
*
* @param view The view within the AdapterView that was clicked.
* @param position The position of the view in the adapter.
* @param id The row id of the item that was clicked.
* @return True if there was an assigned OnItemClickListener that was
* called, false otherwise is returned.
이 OnItemClickedListener를 OnCreate 메서드 내에서 사용해야한다는 것을 알고 있습니다. 난 그냥 OnCreate 어디서나 또는 다른 모든 코드를 마지막으로 모든 방법을 아래로 넣어합니까? 종종 사람들은 setContentView 메소드를 따라야한다고 말하고 있지만,이 경우에 맞는지는 확실치 않습니다. – Kevik
예, OnContentVIew와 Android의 모든 위젯을 선언 한 후에 OnCreate 메서드 내에서 OnItemClickedListener를 palse해야합니다. –
나는 setContentView 다음에 올바른 위치에 OnCreate 메서드의 coverFlow.setOnItemClickListener 코드를 넣고 Eclispe IDE에서는 setOnClickListener가 오류로 표시되므로 그 위에 훑어보고 Quickfix에서 제공 한 옵션은 다음과 같습니다 (새 AdapterView. OnItemClickListener()는 Coverflow 유형에 대해 정의 해제 임) 8 개의 빠른 수정 사용 가능 : 'setOnClickListener'(...)로 변경 SetOnItemLongClickListener (..) Create method 'setOnItemClickListener ? – Kevik