編集テキストをクリックした後に編集テキストのフォーカスを削除する方法がわかりません。折りたたみボタンをクリックすると、アプリケーションが実行を停止しました。これは、それが出ていますエラーです: -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
私はParentViewHolder内部chilhdviewholderからのEditTextフォーカスを呼び出す方法がわからない...任意のアイデア?ユーザーのコメント後にフォーカスを移動するか、親ビューを折りたたむ必要があります。 –
ユーザーが折りたたみボタンをクリックしたときにeditTextにフォーカスがあるため、エラーが発生しました。 (ビューがない) –
'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(); } } }); ' –