0

編集テキストをクリックした後に編集テキストのフォーカスを削除する方法がわかりません。折りたたみボタンをクリックすると、アプリケーションが実行を停止しました。これは、それが出ていますエラーです: -parentViewが折りたたまれているときにchildViewHolderフォーカスをクリアするにはどうすればよいですか?

致命的な例外:メインプロセス:my.mimos.fssm.fosimapp、PID:3915 java.lang.IllegalArgumentExceptionが:パラメータが で 、このビューの子孫でなければなりませんandroid.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4882)

私はbignerdranchによって拡張可能なリサイクルビューに取り組んでいます。私の親リストビューはテキストビュー(リストの名前)と崩壊ボタン(子ビューの場合はgoogleとして機能します)を持っています。私の子供のビューについては、editTextを追加しました。ここでは、textviewに関するコメントを残すことができます。

ExpandableAdapter.java

import com.bignerdranch.expandablerecyclerview.Adapter.ExpandableRecyclerAdapter; 
import com.bignerdranch.expandablerecyclerview.Model.ParentListItem; 

public class ATPExpandableAdapter extends ExpandableRecyclerAdapter<ATPParentViewHolder, ATPChildViewHolder> { 

    LayoutInflater mInflater; 
    Context mContext; 
    ArrayList<ATPParent> mParentItemList; 
    public static final String TAG = ATPExpandableAdapter.class.getSimpleName(); 

    public ATPExpandableAdapter(Context context, ArrayList<ATPParent> parentItemList) { 
     super(parentItemList); 
     mInflater = LayoutInflater.from(context); 
     mContext = context; 
     mParentItemList = parentItemList; 
    } 

    @Override 
    public ATPParentViewHolder onCreateParentViewHolder(ViewGroup viewGroup) { 
     View view = mInflater.inflate(R.layout.list_item_atp_parent, viewGroup, false); 
     return new ATPParentViewHolder(view); 
    } 

    @Override 
    public ATPChildViewHolder onCreateChildViewHolder(ViewGroup viewGroup) { 
     View view = mInflater.inflate(R.layout.list_item_atp_child, viewGroup, false); 
     return new ATPChildViewHolder(view); 
    } 

// todo: continued here 
    @Override 
    public void onBindParentViewHolder(final ATPParentViewHolder atpParentViewHolder, final int i, ParentListItem parentObject) { 
     ATPParent atpParent = (ATPParent) parentObject; 
     atpParentViewHolder.mATP_textview.setText(atpParent.getTitle()); 

     //when user clicked on parent view 
     atpParentViewHolder.mView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.d(TAG, "onClick: parentView"); 
      } 
     }); 

     atpParentViewHolder.mParentDropDownArrow.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.d(TAG, "onClick: expandable button"); 
      } 
     }); 

    } 

    @Override 
    public void onBindChildViewHolder(final ATPChildViewHolder atpChildViewHolder, int i, Object childObject) { 
     final ATPChild atpChild = (ATPChild) childObject; 


     String text = atpChildViewHolder.mCatatanInput.getText().toString(); 
     if(!text.equals("")) { 
      atpChild.setDetail(text); 
      atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail()); 
     } else { 
      atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail()); 
     } 

     atpChildViewHolder.mCatatanInput.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (!hasFocus) { 
        atpChild.setDetail(atpChildViewHolder.mCatatanInput.getText().toString()); 
        atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail()); 
       } 
      } 
     }); 

    } 
} 

私は事の多くを試みたが、それを私のために動作するように見えません。 これは私の展開可能なリサイクラビューです。 enter image description here

+0

私はParentViewHolder内部chilhdviewholderからのEditTextフォーカスを呼び出す方法がわからない...任意のアイデア?ユーザーのコメント後にフォーカスを移動するか、親ビューを折りたたむ必要があります。 –

+0

ユーザーが折りたたみボタンをクリックしたときにeditTextにフォーカスがあるため、エラーが発生しました。 (ビューがない) –

+0

'public ATPParentViewHolder(itemViewを表示){ mView = itemView; mATP_textview =(TextView)itemView.findViewById(R.id.input_atp); mParentDropDownArrow =(ImageButton)itemView.findViewById(R.id.parent_list_item_expand_arrow); mParentDropDownArrow.setOnClickListener(新しいビュー。OnClickListener(){ @Override public void onClick(View v){ if(isExpanded()){collapseView(); } else {expandView(); } } }); ' –

答えて

0

拡張RecyclerView

あなたはこのライブラリを使用することができます。 複数のビュータイプをサポートしてグループを展開したり折りたたんだりするのに非常に便利なカスタムRecyclerViewAdapterです。

ExpandableRecyclerView:

コンパイル 'com.thoughtbot:expandablerecyclerview:1.3'

ExpandableCheckRecyclerView:

コンパイル「com.thoughtbot:expandablecheckrecyclerview:1.4 '

https://github.com/thoughtbot/expandable-recycler-view

Custom Expand/Collapse Animations example

+0

編集用テキストのフォーカスを削除することはできませんか?そのライブラリを提案してくれてありがとう。 –

+0

YES * ** editText.setFocusable(偽) **フォーカスを削除するが、フォーカス可能なまま。 – Shomu

+0

これは問題です。 ** parentViewHolder **から呼び出す方法や渡す方法がわかりません** –

関連する問題