对于没有信息的标题感到抱歉,并没有真正知道如何在短时间内描述我的问题。我试过这样解决它3个小时后我就不知道了,google for go或者还有什么可以尝试。
我有一个带有视图的Recyclerview,它通过onKeyPreIme()
拦截了背压事件。这是视图:
public class TestView extends LinearLayout {
int a = 1;
public TestView(Context context, AttributeSet att) {
super(context, att);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.layout, this, true);
findViewById(R.id.setBtn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
a = 2;
}
});
findViewById(R.id.readBtn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("LOG", "value of a: " + a);
}
});
this.setFocusable(true);
this.setFocusableInTouchMode(true);
this.requestFocus();
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
Log.i("LOG", "value of a: " + a);
return true;
}
}
现在开始a = 1
。单击setBtn后,它会在按readBtn
时确认。但是当我按下后退按钮时, a 的值打印为1!如果我之后按readBtn
,则 a 的值将打印为2.这仅在前两个视图上发生。对于以下(那些可能未创建但重用的),行为是正确的。