마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 아이템 클릭 이벤트

0 추천
리스트뷰에서 아이템을 클릭하면 토스트가 뜨게 했는데
실제로 작동해보면 아무런 반응도 없습니다 예제 보고 따라해봤는데 잘못된게 있나요??
 
public class Page2Activity extends Fragment {
    // List view
    private ListView lv;
    private TextView two; 
    // Listview Adapter
    ArrayAdapter<String> adapter;
     
    // Search EditText
    EditText inputSearch;
     
     
    // ArrayList for Listview
    ArrayList<HashMap<String, String>> productList;
 
private ImageView mImgView01;
 
 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
 
private OnItemClickListener itemClickListenerOfLanguageList = new OnItemClickListener()
   {
       public void onItemClick(AdapterView<?> adapterView, View clickedView, int pos, long id)
       {
           String toastMessage = ((TextView)clickedView).getText().toString() + " is selected.";
           Toast.makeText(
               getActivity(),
               toastMessage,
               Toast.LENGTH_SHORT
           ).show();
       }
   };
 
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
RelativeLayout layout = (RelativeLayout)inflater.inflate(R.layout.activity_page2, container, false);
String name[] = {"ABC", "가나다", "123"};
 
lv = (ListView) layout.findViewById(R.id.list_view);
inputSearch = (EditText) layout.findViewById(R.id.inputSearch);
mImgView01 = (ImageView) layout.findViewById(R.id.imageView1);
two = (TextView) layout.findViewById(R.id.textView1);
 
 
// Adding items to listview
adapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item, R.id.product_name, name);
lv.setAdapter(adapter);
 
return layout;
}
}
 
Android333 (200 포인트) 님이 2015년 6월 12일 질문

1개의 답변

0 추천
리스너만 있고 리스너를 어댑터나 리스트뷰에 달지 않으셨네요.
브레이커즈 (260 포인트) 님이 2015년 6월 12일 답변
아하;;
그래서 lv.setOnItemClickListener(itemClickListenerOfLanguageList);
이렇게 추가했는데 아이템을 클릭하면 종료됩니다 ㅠㅠ
06-11 21:30:08.384: D/AndroidRuntime(1440): Shutting down VM
06-11 21:30:08.384: W/dalvikvm(1440): threadid=1: thread exiting with uncaught exception (group=0xb2acbba8)
06-11 21:30:08.424: E/AndroidRuntime(1440): FATAL EXCEPTION: main
06-11 21:30:08.424: E/AndroidRuntime(1440): Process: com.d.d, PID: 1440
06-11 21:30:08.424: E/AndroidRuntime(1440): java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
06-11 21:30:08.424: E/AndroidRuntime(1440):     at com.d.d.Page2Activity$1.onItemClick(Page2Activity.java:49)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.widget.AdapterView.performItemClick(AdapterView.java:299)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.widget.AbsListView$3.run(AbsListView.java:3638)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.os.Handler.handleCallback(Handler.java:733)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.os.Handler.dispatchMessage(Handler.java:95)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.os.Looper.loop(Looper.java:136)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at android.app.ActivityThread.main(ActivityThread.java:5017)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at java.lang.reflect.Method.invokeNative(Native Method)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at java.lang.reflect.Method.invoke(Method.java:515)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-11 21:30:08.424: E/AndroidRuntime(1440):     at dalvik.system.NativeStart.main(Native Method)
06-11 21:30:09.824: I/Process(1440): Sending signal. PID: 1440 SIG: 9
android.widget.LinearLayout cannot be cast to android.widget.TextView
형변환이 잘못됐네요
감사합니다
String toastMessage = ((TextView)clickedView).getText().toString() + " is selected.";
이부분이 문제인거 같은데 어떤식으로 수정해야 할까요??
textview가 아니라 linear layout 이래요.
...