2013-05-30 1 views
0

Android에서 가능한지 알고 싶습니다. 지원 라이브러리 v4를 사용 중입니다. 문제점 두 개의 어댑터를 사용하여 두 개의 액티비티에서 동일한 사용자 지정보기를 표시해야한다는 것입니다. 하나의 어댑터가 뷰 호출기를 지원하고 다른 어댑터는 그리드를 지원합니다. 기본적으로 볼 수있는 이미지가있는 격자가 있으며 요소를 클릭하면보기 호출기에서 동일한 이미지를 볼 수있는 다른 활동이 열립니다. 에서 지원되지 않습니다 removeView (보기) : 난 그냥 처음에는 java.lang.UnsupportedOperationException가 얻을두 어댑터에서 동일한보기가 공유되었습니다.

((ViewGroup) myImageView.getParent()).removeView(myImageView); 

를 사용하여 뷰를 제거한 후, 이미 내가 기대하는 부모가 조각 onCreateView 방법 같은 견해를 반환하지만 아이를 얻을 시도 일어날 것으로 예상하지 않은 AdapterView 예외입니다. 새 뷰를 만들지 만 두 어댑터에서 기존 뷰를 사용하고 싶지 않기 때문에 멈춘 것입니다. 내 질문 : 같은보기 의이 보여주는 완료 또는 내가 완전히 잘못된 트랙에 오전이 "어댑터 링크"다른 방법으로 구현해야합니까?

답변

1

이 동일한보기가 표시 될 수 있습니까? 아니면 완전히 잘못된 트랙에서이 "어댑터 링크"를 구현해야합니까?

두 가지 활동간에보기를 공유 할 방법이 없으므로 원하지 않습니다. 프래그먼트와 함께 하나의 액티비티를 사용했다 할지라도 더 많은 문제를 일으킬 수 있으므로 어댑터의 뷰를 공유해서는 안됩니다.

원하는 작업을 수행하는 적절한 방법은 동일한 데이터를 원하는 두 위치에서 데이터를 다시 작성하는 것입니다.이 방법은 어댑터를 사용하는 경우 쉽게 수행해야합니다. 기본적으로 GridView에 사용되는 일반 어댑터의 ViewPager 페이지에는 동일한 레이아웃을 사용해야합니다. removeView (보기) I가 일어날 것으로 예상하지 않았다 어댑터 뷰 AdapterView 예외가 지원 되지 않습니다 :

나는 java.lang.UnsupportedOperationException가 얻을.

AdapterView의 아이는 어댑터를 통해 아이를 관리하고 addView() 또는 removeView() 같은 방법은 그들을 위해 구현되지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 올바른 방향으로 나를 가리킨다. 그리고 나는 그것을 지금 시험 할 예정이다. 좀 더 구체적으로 설명해 주시겠습니까? "원하는 것은 데이터를 원하는 두 곳의 데이터를 다시 만드는 것이고, 어댑터를 사용하면 쉽게 처리 할 수 ​​있습니다. GridView에 사용되는 일반 어댑터의 ViewPager 페이지와 동일한 레이아웃입니다. " 여기서 문제는 내 사용자 지정 개체에 데이터 및보기 클래스가 모두 포함되어있을 수 있습니다. String imageUrl 및 ImageView FullImage가 있습니다. – PSIXO

+0

@PSIXO 사용자 지정 개체 **에는 모델을 나타내지 않으므로 ** ImageView가 포함되어서는 안됩니다. 모델 클래스에 데이터 만 넣고'ImageView'를 빌드 할 어댑터로 남겨 두어야합니다. 그런 다음 이미 말했듯이,'ViewPager'를위한 어댑터와'GridView'를위한 어댑터에서 동일한 레이아웃을 사용하십시오. – Luksprog

+0

많은 것들을 시도했지만 결국 당신이 제안한 것과 비슷한 것을 구현했습니다. 당신의 도움에 감사드립니다. 또한 AdapterView의 자식은 어댑터를 통해 자식을 관리하며 addView() 또는 removeView() 같은 메서드는 어댑터에 구현되지 않습니다. 나는 그 사실을 모르기 때문에 나에게 중요한 정보이다. 이것들에 대해서는 올바른 대답을 얻습니다. "ViewPager 용 어댑터와 GridView 용 어댑터에서 동일한 레이아웃을 사용하십시오."에 대한 부분을 이해하지 못한다. 그래서 도움이 될만한 정보를 좀 더 주면된다. 또한 어댑터의 위치를 ​​어떻게 연결합니까? – PSIXO

관련 문제