如何解决在Recyclerview中更改Edittext的IME选项
我正在使用Learning应用程序,它具有Tabview,因此我正在使用Fragments。 最后一个片段在顶部具有按钮,可在多个级别之间导航。在它下面是一个Recyclerview,其中包含Cardview,在Cardview的左边有一个Question,在右边有一个Edittext来回答。 目前,IME选项是actionSend,我不仅要跳到下一个Edittext,还要评估给出的答案。我已经通过实现OnClickListener实现了这一点,但是必须单击Recyclerview中的每个Cardview以获得反馈,这很烦人,因此我想将其复制到Editext的setonEditorActionListener函数中。我遇到的问题是,我不知道如何在Recyclerview中获取当前Cardview项的位置(用问题列表中的相应项评估给定的Answer,而不用更改Editext来实际点击它)。
private RecyclerView myrecyclerview;
private ArrayList<Question> QuestionList;
private QuestionAdapter recyclerAdapter;
private EditText givenAnswer;
public void ClickManager(final ArrayList<Question> list){
//works perfectly when the item is clicked
recyclerAdapter.setonItemClickListener(new QuestionAdapter.OnItemClickListener() {
@Override
public void onItemClick(final int position) {
View itemView = myrecyclerview.getLayoutManager().findViewByPosition(position);
final EditText givenAnswer = itemView.findViewById(R.id.answer);
ClickEvaluation(list,givenAnswer,position);
}
});
givenAnswer.setonEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView,int i,KeyEvent keyEvent) {
boolean handled = false;
if (i == EditorInfo.IME_ACTION_SEND){
ClickEvaluation(list,position); //can't access any position
handled = true;
}
return handled;
}
});
}
评估功能:
public void ClickEvaluation(final ArrayList<Question> list,EditText givenAnswer,int position){
Question currenQuestion = list.get(position);
if (currenQuestion.correct(givenAnswer.getText().toString())){
currenQuestion.gaveCorrectAnswer();
score += 1;
current.setText(String.format("%d",score));
}else{
currenQuestion.showCorrectAnswer();
}
givenAnswer.setText("");
recyclerAdapter.notifyItemChanged(position);
}
非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。