textview没有显示长值

问题描述 投票:0回答:2

我正在实现一个计时器,以下是该主要活动的代码

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保持空白。它也没有在日志中显示任何错误请帮助,并感谢您的建议

java android android-studio textview long-integer
2个回答
0
投票

在清单中,你将clickListenerButton声明为generate()

但是在活动的onCreate,你覆盖它findViewById(R.id.btn).setOnClickListener(this);

findViewById(R.id.btn).setOnClickListener(this);中移除onCreate或在generate(v)中调用onClick


0
投票

你应该删除

 findViewById(R.id.btn).setOnClickListener(this);

来自onCreate()

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_depth);
    }

因此onClick将通过布局xml文件处理。

© www.soinside.com 2019 - 2024. All rights reserved.