fragment 중 하나 안에서 listview를 구현했는데요. 클릭했을 때 다른 액티비티를 뜨게 하려면 어떻게 하나요?(초보)
조회수 5555회
fragment 중 하나 안에서 listview를 구현했는데요. 클릭했을 때 다른 액티비티를 뜨게 하려면 코드를 어떻게 해야하나요? 초보입니당 도움부탁드립니다...
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
}
}) ;
이걸 넣어서 쓰면 fragment 안에서랑 이 방식이 달라서 오류가 생기구요.... 도와주세요ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
3 답변
-
댓글보고 내용 추가합니다.
@Override public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) { adapterView.getItemAtPosition(pos); // 이런식으로 클릭한 아이템을 가져올 수 있습니다. 리스트뷰에 어떤 자료구조형태로 아이템을 만들었는지는 모르겠지만 해당아이템을 가져와서 체크하고 각조건에 맞는 액티비티를 if문이나 case절로 분기를 만들어 액티비티를 호출하면 되겠네요. }
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
적어주신 코드 그대로 쓰면 되는데요. Fragment에 있는 listview를 가져와서 listview에 setOnItemClickListener를 달고 onItemClick 함수안에서
Intent intent=new Intent(getActivity(), 호출하려는액티비티.class); startActivity(intent);
하시면됩니다. 오류가 생긴다는게 어떤 오류인지 오류로그를 보여주시면 뭐가 문제인지 알수있을것 같아요.
-
(•́ ✖ •̀)
알 수 없는 사용자
- 리스트뷰 코드를 쓴 프레이그먼트 자바파일에 작성하는거 맞죠..? 알 수 없는 사용자 2016.4.20 13:46
- 리스트뷰 내용 하나하나 클릭할때마다 다른 액티비티 뜨게하려면 어떻게해야할까요 알 수 없는 사용자 2016.4.20 13:47
-
-
public class SocialFragment extends Fragment { static final String[] LIST_MENU = {"★ 예체능관련분과", "동아리List2", "동아리List3","동아리List4","동아리List5","★ 문학관련분과","동아리List7","동아리List8","동아리List9","동아리List10","★ 봉사분과","동아리List12","동아리List13","동아리List14","동아리List15"} ; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.social_layout, null); ArrayAdapter Adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, LIST_MENU); ListView listview = (ListView) view.findViewById(R.id.listView); listview.setAdapter(Adapter); return view; listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) { adapterView.getItemAtPosition(pos); if (LIST_MENU == null) { Intent intent = new Intent(getActivity(), List1.class); startActivity(intent); } } }); //이부분이 );를 쓰면 빨간색 밑줄로 에러가 뜨네요. 이것도 해결좀 부탁드립니다. } }
이런식으로 코딩이 되어있는 상태인데요. 어떤 식으로 저기 if 절을 사용해서 해야하는지 잘 모르겠습니다. ㅠㅠ 저기 위에 동아리리스트1, 동아리리스트2 이런 리스트들을 각각 클릭했을 때 새 액티비티 창이 뜨게 하고싶습니다. 도와주시면 감사드리겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
- LIST_MENU StringArray에 있는 이름에 매칭되는 Class 이름이 있는 배열을 만드시는게 좋을 것 같은데요 static final String[] LIST_MENU_ACTIVITY = {"AMP.class","Circle2.class".......}; 이런식으루요 그러고나서public void onItemClick(AdapterView> adapterView, View view, int pos, long l) { adapterView.getItemAtPosition(pos); if (LIST_MENU == null) { Intent intent = new Intent(getActivity(), LIST_MENU_ACTIVITY[pos]); startActivity(intent); } } 알 수 없는 사용자 2016.5.18 08:56
-
댓글 입력