2017-11-23 3 views
0

カスタムBaseAdapterを使用して、グリッドビューでチェックボックスとテキストビューを使用してレイアウトを拡張しています。各項目のクリックリスナーで新しいアイテムをクリックすると、以前にクリックされたgridviewアイテムのチェックを外す

public View getView(final int i, View view, ViewGroup viewGroup) { 

    if(view==null){ 
     view = inflater.inflate(R.layout.view_font_grid_details,null); 
    } 

    final TextView tvFontName = (TextView) view.findViewById(R.id.tv_font_detail_name); 
    final CheckBox ivFontName = (CheckBox) view.findViewById(R.id.checkedImage); 


    if(!isColor) { 

     Log.d("fontNames"," "+fonts[i]); 
     FontUtil.setDrawpTypeFace_(fonts[i],tvFontName); 

     tvFontName.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ivFontName.setVisibility(View.VISIBLE); 
       ivFontName.setChecked(true); 
       listener.fontSet(fonts[i]); 
      } 
     }); 

    } 
} 

、クリック時に、私は(XML宣言ではデフォルトで見えない定義されている場合は、チェックボックス)チェックボックスが表示され、チェックを行かせます。私が別のアイテムをクリックしたときに行う必要があるものは、前にチェックしたアイテムのチェックを外す必要があります。どの子ビューが以前にクリックされたかを知る方法はありますか?

答えて

0

ステップ1クリックしたアイテムのID /位置をリスト/アレイに格納します。

ステップ2アイテムがクリックされたときにリストにループされ、チェックマークが外されているとマークします。

ステップ3 NotifydatasetChangedまたはnotifyItemRangeChanged何かを呼び出します。

関連する問題