0

나는 클릭 가능한 새로운 활동으로 listview하고 싶다. onitemclick 프로그램을 추가하면 프로그램이 중지되었습니다. 로그 캣은 말합니다 :조각보기 목록보기

07-13 09 : 09 : 18.873 : E/AndroidRuntime (1790) : java.lang.IllegalStateException : 콘텐츠 뷰가 아닌 onitemclick 목록보기에이 일을하기 전에 아직

를 만들었습니다. 모든 XML 파일을 만들고 매니페스트 파일에 intens를 추가합니다. 문제를 어떻게 해결할 수 있습니까? 모든 setListAdapter 및 모든 ListView를 생성 로직 onActivityCreated()에 이상

public class FragmentThree extends ListFragment { 


     @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 

     setListAdapter(new MyAdapter(getActivity(), android.R.layout.simple_list_item_1, R.id.mech ,getResources().getStringArray(R.array.parts))); 


     ListView listView = getListView(); 
     listView.setTextFilterEnabled(true); 

     listView.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

       Intent intent = null; 
       switch(position) { 
       case 0: 
         intent = new Intent(getActivity(), FragmentThreeOne.class); 
         startActivity(intent); 
       break; 
       case 1: 
         intent = new Intent(getActivity(), FragmentThreeTwo.class); 
         startActivity(intent); 
         break; 

       case 2: 
        intent = new Intent(getActivity(), FragmentThreeThree.class); 
        startActivity(intent); 
        break; 

      case 3: 
        intent = new Intent(getActivity(), FragmentThreeFour.class); 
        startActivity(intent); 
        break; 

      case 4: 
        intent = new Intent(getActivity(), FragmentThreeFive.class); 
        startActivity(intent); 
        break; 

      case 5: 
        intent = new Intent(getActivity(), FragmentThreeSix.class); 
        startActivity(intent); 
        break; 

      case 6: 
        intent = new Intent(getActivity(), FragmentThreeSeven.class); 
        startActivity(intent); 
        break; 

      case 7: 
        intent = new Intent(getActivity(), FragmentThreeEight.class); 
        startActivity(intent); 
        break; 

      case 8: 
        intent = new Intent(getActivity(), FragmentThreeNine.class); 
        startActivity(intent); 
        break; 

      case 9: 
        intent = new Intent(getActivity(), FragmentThreeTen.class); 
        startActivity(intent); 
        break; 

      case 10: 
        intent = new Intent(getActivity(), FragmentThreeEleven.class); 
        startActivity(intent); 
        break; 



       default: 
       } 

      } 
     }); 


      View rootView = inflater .inflate(R.layout.fragment_three, container, false); 
      return rootView; 
} 

    private class MyAdapter extends ArrayAdapter<String> { 

     public MyAdapter(Context context, int resource, 
       int textViewResourceId, String[] strings) { 
      super(context, resource, textViewResourceId, strings); 
      // TODO Auto-generated constructor stub 
     } 





     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 

      LayoutInflater inflater =(LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View row = inflater.inflate(R.layout.list_item_one, parent, false); 
      String[] items = getResources().getStringArray(R.array.parts); 

      ImageView iv = (ImageView) row.findViewById(R.id.mechres); 

      TextView tv = (TextView) row.findViewById(R.id.mech); 

      tv.setText(items[position]); 

      if(items[position].equals("itemone")){ 

       iv.setImageResource(R.drawable.one); 
      } 

      else if (items[position].equals("itemtwo")){ 

       iv.setImageResource(R.drawable.twp); 
      } 
      else if (items[position].equals("itemthree")){ 

           iv.setImageResource(R.drawable.three); 
          } 

      else if (items[position].equals("itemfour")){ 

        iv.setImageResource(R.drawable.four); 
       } 
      else if (items[position].equals("itemfive")){ 

        iv.setImageResource(R.drawable.five); 
       } 

      else if (items[position].equals("itemsix")){ 

        iv.setImageResource(R.drawable.six); 
       } 

      else if (items[position].equals("itemseven")){ 

        iv.setImageResource(R.drawable.seven); 
       } 

      else if (items[position].equals("itemeight")){ 

       iv.setImageResource(R.drawable.eight); 
      } 
      else if (items[position].equals("itemnine")){ 

       iv.setImageResource(R.drawable.nine); 
      } 
      else if (items[position].equals("itemten")){ 

       iv.setImageResource(R.drawable.ten); 
      } 
      else if (items[position].equals("itemeleven")){ 

       iv.setImageResource(R.drawable.eleven); 
      } 



      return row; 
     } 

    } 

     } 

답변

0

이동 :

여기 내 주요 자바 코드입니다. onCreateView() 메서드에서 그냥 inflate하고 rootView를 반환합니다.

+0

setlistadapter 및 listview 논리를 이동 한 후 동일한 logcat 오류가 발생했습니다. – user3739997

+0

변경 사항을 반영하여 게시 된 코드를 업데이트 할 수 있습니까? –

+0

죄송합니다. 실수로 당신의 의견을 잘못 읽었습니다. 두 번째로 나는 그것을 읽었습니다. onActivityCreated()를 만들고 당신이 말하는 모든 것을 이동하십시오. 문제 해결됨. 감사! – user3739997

관련 문제