Android:变量有两种状态

时间:2016-04-21 12:20:47

标签: android android-recyclerview

对于没有信息的标题感到抱歉,并没有真正知道如何在短时间内描述我的问题。我试过这样解决它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.这仅在前两个视图上发生。对于以下(那些可能未创建但重用的),行为是正确的。

0 个答案:

没有答案