我正在实现一个计时器,以下是该主要活动的代码
public class DepthActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_depth);
findViewById(R.id.btn).setOnClickListener(this);
}
long startTime;
boolean showingFirst = true;
public void generate(View view) {
if(showingFirst
startTime = System.currentTimeMillis();
showingFirst = false;
} else {
long difference = System.currentTimeMillis() - startTime;
TextView myText = findViewById(R.id.tv);
myText.setText(String.valueOf(difference));
showingFirst = true;
}
}
@Override
public void onClick(View v) {
}
}
activity_main.xml中
<Button
android:id="@+id/btn"
android:layout_width="339dp"
android:layout_height="237dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="start/stop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.83"
android:onClick="generate"/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="TextView"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
但是,当我第二次单击该按钮时,它不显示“长差异”,并且textview保持空白。它也没有在日志中显示任何错误请帮助,并感谢您的建议
在清单中,你将clickListener
的Button
声明为generate()
。
但是在活动的onCreate
,你覆盖它findViewById(R.id.btn).setOnClickListener(this);
。
从findViewById(R.id.btn).setOnClickListener(this);
中移除onCreate
或在generate(v)
中调用onClick
。
你应该删除
findViewById(R.id.btn).setOnClickListener(this);
来自onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_depth);
}
因此onClick将通过布局xml文件处理。