将变量传递给onClick方法

时间:2013-05-22 01:32:32

标签: java android static android-activity

所以我想计算从创建活动到按下按钮时发生的总时间。我可以用我当前的代码做到这一点,但它使用静态变量,我知道这是糟糕的编程实践,我还有另一种方法可以做到这一点。

我目前的代码:

static long startTime=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quick_touch);
        // Show the Up button in the action bar.
        setupActionBar();
        startTime=System.currentTimeMillis();
}

public void onClick(View view) 
    {
        long endTime = System.currentTimeMillis();
        long time= endTime- startTime;


    }

2 个答案:

答案 0 :(得分:0)

您不需要使用静态变量 - 非静态成员变量也可以使用。但是,如果你不想让你的活动混乱,你可以为onClickListener创建一个私有内部类,并将它存储在通过其构造函数传入的成员变量中。

答案 1 :(得分:0)

在您出现的情况下,静态变量不会影响代码的结果。

此外,当值保持不变时,没有真正的理由使用变量。

我建议final long startTime;没有初始值。在onCreate

期间设置值(就像您已经做的那样)
final long startTime;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quick_touch);
    // Show the Up button in the action bar.
    setupActionBar();

    startTime = System.currentTimeMillis();
}

public void onClick(View view) 
{
    long endTime = System.currentTimeMillis();
    long time= endTime- startTime;
}