ViewPager 내부에는 textviews 및 이미지와 함께 단일 선택 응답의 격자가있는 gridview가 있습니다. 내가 어떤 대답을 클릭하면, textview의 색상이 빨간색으로 변경되어야합니다. WHITE. 첫 번째을 제외한 모든 다른 답변에 대한 작업 벌금. 처음 gridview에서 첫 번째 답변을 클릭하면 두 번째 클릭하면 빨간색으로 바뀌지 만, 옵션을 변경하면 RED 색상이 첫 번째 옵션에 대해 흰색으로 변경되지 않고 색상이 변경되지 않습니다. 아래의 화면에서 봐ViewPager 내부의 GridView에서 첫 번째 항목에 대해 OnClickListener가 작동하지 않습니다.
내가 새 사용자 나처럼 제출 나를 위해 허용되지 않습니다죄송 화면 ...
GridFragment#OnActivityCreated()
내부 :
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long arg3) {
currentPage = new TestTopics().getCuttentPage();
tv = ((ViewHolder) v.getTag()).lbl;
if(selectedValues.containsKey(currentPage))
{
selectedValues.get(currentPage).setTextColor(Color.WHITE);
selectedValues.remove(currentPage);
selectedValues.put(currentPage, tv);
selectedValues.get(currentPage).setTextColor(Color.RED);
}
else
{
selectedValues.put(currentPage, tv);
selectedValues.get(currentPage).setTextColor(Color.RED);
}
}
});
ImageAdapter#getView()
방법 :
public View getView(int position, View convertView, ViewGroup parent) {
numTopics = mTopicList.getNumTopics();
ViewHolder holder;
holder = new ViewHolder();
if (convertView == null) {
int layoutId = R.layout.demo_pager_grid_item;
LayoutInflater li = ((Activity) mContext).getLayoutInflater();
childView = li.inflate (layoutId, null);
holder.img = (ImageView) childView.findViewById(R.id.image);
holder.lbl = (TextView) childView.findViewById(R.id.title);
childView.setTag(holder);
} else {
childView = convertView;
holder = (ViewHolder) childView.getTag();
}
if (childView != null) {
// Set the width and height of the child view.
childView.setLayoutParams(new GridView.LayoutParams(mCellWidth, mCellHeight));
int j = position + mImageOffset;
if (j < 0) j = 0;
if (j >= numTopics) j = numTopics - 1;
imageView = (ImageView) childView.findViewById (R.id.image);
if (imageView != null) {
Resources res = mContext.getResources();
int imagePadding = res.getDimensionPixelSize (R.dimen.grid_image_padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setBackgroundResource (R.color.background_grid1_cell);
imageView.setPadding (imagePadding, imagePadding, imagePadding, imagePadding);
imageView.setImageBitmap (mTopicList.getTopicImage (j));
imageView.setTag (new Integer (j));
}
textView = (TextView) childView.findViewById (R.id.title);
if (textView != null)
{
textView.setText(mTopicList.getTopicTitle (j));
textView.setTag (mTopicList.getTopicTitle (j));
holder.lbl.setTag(mTopicList.getTopicTitle (j));
}
}
return childView;
}
이 링크를 보았습니다 : OnClickListener not working for first item in GridView, 대답을 따르되 성공하지 못했습니다 ...
어디서 잘못 될까요?
당신이 그것을 해결 했습니까? – vandzi
예, 업데이트 된 코드를 첨부했습니다. 해결책을 위해 그것을 참조하십시오. – Archa
감사합니다. 나는 그것을 점검 할 것입니다! – vandzi