onCreate 메서드 내에서 spinner에 listview이 포함되어 있습니다. 클릭 이벤트에 대한 목록 항목에 toast msg를 실행하려고하지만 ListView 항목에 onClick 수신기를 설정할 수 없습니다. 맞춤 어댑터를 사용하고 있지 않습니다. 나는 간단한 어댑터의 동일한 유형이 스피너와리스트 뷰 모두에 사용된다고 생각한다. 따라서 컴파일러는 좌절감을 낳는다.Spinner 내부의 ListView : 이벤트 감지를위한 어댑터 충돌
유형 새로운 AdapterView.OnItemClickListener() {}는 상속 추상 메소드 AdapterView.OnItemClickListener.onItemClick (어댑터 뷰 AdapterView,보기, INT를 구현해야
나는
"lv.setOnItemClickListener(new AdapterView.OnItemClickListener
얻어 오류 "에 초점을 유지
어떻게 간단한 어댑터를 사용하여 유지 목록보기 항목에서 이벤트를 클릭하여 설정을 관리 할 수), 오래? 은 어떻게 든 목록보기 어댑터를 "이름 바꾸기"나 어떻게 할까 계속 진행하면 ..?
의사 코드
// ...
import android.widget.AdapterView;
/* manually added */
import android.widget.AdapterView.OnItemClickListener;
public class MyActivity extends Activity {
onCreate(Bundle savedInstanceState){
// ... some code
// Set Spinner listener
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> spinner, View v, int position, long id) {
// ... some code
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()) {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), "some msg" , Toast.LENGTH_SHORT).show();
}
});
}
}
"나는 onCreate 메서드 내에서 스피너에 목록 뷰를 임베드했습니다."- 작동하면 기절 할 것입니다. – CommonsWare
잘 그것은 매력 같이 명백하게 작동한다, listview 자료를 위해 해시의 명부를 사용하고 requirying myAdapter.notifyDataSetChanged(); 하지만 나는 목록보기 항목에 토스트를 발사하기 위해 고심하고있다. – hornetbzz
Spinner 자체는 어댑터에 따라 다르며 팝업이 보여주는 것은 ListView와 크게 다르지 않습니다. 그렇다면 왜 스피너 팝업 안에 목록보기를 삽입하고 있습니까? 여러 개의 'ListViews'가 아닌 여러 개의 어댑터가 필요합니다. 또한 스피너 팝업에서 뷰의 개별 이벤트를 캡처하려면 어댑터의'getView()'메소드 내에 클릭 이벤트 핸들러를 설정하십시오. –