Java 在Android Studio中编辑文本和倒计时

Java 在Android Studio中编辑文本和倒计时,java,android,android-studio,android-edittext,Java,Android,Android Studio,Android Edittext,我的应用程序上有一个Counttimer和edittext。我想在edittext中写一个数字,当我点击按钮时,倒计时开始,时间是edittext变量。在XML中,我有一个示例编号,因为当我删除它时,它就不起作用了。当我启动倒计时时,它会工作,但如果我更改edittext,它会使用旧的edittext数据。我怎样才能解决我的问题 pomodoro.XML <RelativeLayout xmlns:android="http://schemas.android.com/apk/r

我的应用程序上有一个Counttimer和edittext。我想在edittext中写一个数字,当我点击按钮时,倒计时开始,时间是edittext变量。在XML中,我有一个示例编号,因为当我删除它时,它就不起作用了。当我启动倒计时时,它会工作,但如果我更改edittext,它会使用旧的edittext数据。我怎样才能解决我的问题

pomodoro.XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".pomodoro"
    android:background="@drawable/backround_home">
   

    <
        <EditText
            android:id="@+id/edittextcalisma"
            android:layout_width="80dp"
            android:layout_height="40dp"

            android:text="20"

            android:textAlignment="center"
            android:textColor="#000000"
            android:textSize="25dp"
            android:background="@drawable/edittext"
            android:layout_marginLeft="30dp"
            android:visibility="visible"
            android:inputType="number"
            android:maxLength="2"
            android:lines="1"



            />
   
 

        <EditText
            android:id="@+id/edittextmola"
            android:layout_width="80dp"
            android:layout_height="40dp"
            android:text="5"


            android:textAlignment="center"
            android:textColor="#000000"
            android:textSize="25dp"
            android:background="@drawable/edittext"
            android:visibility="visible"
            android:layout_marginLeft="30dp"
android:inputType="number"
            android:maxLength="2"
            android:lines="1"

            />
       
    <Button
        android:id="@+id/baslatbutton"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:text="Başla"
        android:textSize="25dp"
        android:layout_marginTop="400dp"
        android:textColor="#ffffff"
        android:fontFamily="@font/montserrat_regular"
        android:background="@drawable/button"
        android:layout_centerHorizontal="true"
        android:visibility="visible"

        />

    

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:layout_centerInParent="true"
        android:fontFamily="@font/montserrat_regular"
        android:textColor="#000000"
        android:id="@+id/pomodoro"
        android:visibility="invisible"
        />


</RelativeLayout>

<
Java.class

public class pomodoro extends AppCompatActivity {

    Button baslat;
    EditText edittextcalisma,edittextmola;
    TextView textcalisma,textmola,pomodoro;
    CountDownTimer calisma,mola;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pomodoro);
        baslat = findViewById(R.id.baslatbutton);
        edittextcalisma = findViewById(R.id.edittextcalisma);
        edittextmola = findViewById(R.id.edittextmola);
        textcalisma = findViewById(R.id.textcalisma);
        textmola = findViewById(R.id.textmola);
        String timercalisma = edittextcalisma.getText().toString();
        String timermola = edittextmola.getText().toString();
        long calismapo = Long.parseLong(timercalisma) * 60000;
        long molapo = Long.parseLong(timermola) * 60000;
        pomodoro = findViewById(R.id.pomodoro);
        
        baslat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pomodoro.setVisibility(View.VISIBLE);
                calisma.start();

            }
        });




        calisma = new CountDownTimer(calismapo, 1000) {
            @Override
            public void onTick(long millis) {

                int minuted1 = (int) (millis / 1000) / 60;
                int secondd1 = (int) (millis / 1000) % 60;
                pomodoro.setText(minuted1 + ":" + secondd1);
                if (secondd1 < 10) {
                    pomodoro.setText(minuted1 + ":0" + secondd1);
                }
            }
            @Override
            public void onFinish() {
                calisma.cancel();
                mola.start();
            }
        };
        mola = new CountDownTimer(molapo, 1000) {
            @Override
            public void onTick(long molapo) {

                int minuted1 = (int) (molapo / 1000) / 60;
                int secondd1 = (int) (molapo / 1000) % 60;
                pomodoro.setText(minuted1 + ":" + secondd1);
                if (secondd1 < 10) {
                    pomodoro.setText(minuted1 + ":0" + secondd1);

                }
            }

            @Override
            public void onFinish() {

                mola.cancel();
                pomodoro.setText("Bitti");
}
        };


    }

   


}
public类pomodoro扩展了appcompative活动{
按钮按钮;
EditText edittextcalisma,edittextmola;
TextView textcalisma、textmola、pomodoro;
倒数计时卡里斯马,莫拉;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pomodoro);
baslat=findViewById(R.id.baslatbutton);
edittextcalisma=findViewById(R.id.edittextcalisma);
edittextmola=findViewById(R.id.edittextmola);
textcalisma=findViewById(R.id.textcalisma);
textmola=findviewbyd(R.id.textmola);
字符串timercalisma=edittextcalisma.getText().toString();
字符串timermola=edittextmola.getText().toString();
长calismapo=long.parseLong(timercalisma)*60000;
长翻车鱼=long.parseLong(timermola)*60000;
pomodoro=findviewbyd(R.id.pomodoro);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
pomodoro.setVisibility(视图可见);
calisma.start();
}
});
calisma=新的倒计时(calismapo,1000){
@凌驾
公共无效条(长毫秒){
int minuted1=(int)(毫秒/1000)/60;
int second1=(int)(毫秒/1000)%60;
pomodoro.setText(分钟1+“:”+second1);
如果(第二个d1<10){
pomodoro.setText(分钟1+“:0”+秒1);
}
}
@凌驾
公共无效onFinish(){
calisma.cancel();
mola.start();
}
};
mola=新的倒计时器(molapo,1000){
@凌驾
公共空地(长翻车鱼){
国际会议记录1=(国际)(molapo/1000)/60;
int second1=(int)(molapo/1000)%60;
pomodoro.setText(分钟1+“:”+second1);
如果(第二个d1<10){
pomodoro.setText(分钟1+“:0”+秒1);
}
}
@凌驾
公共无效onFinish(){
mola.cancel();
pomodoro.setText(“Bitti”);
}
};
}
}
时间是文本变量。在XML中,我有一个例子 数字,因为当我删除它时,它就不起作用了

因为在onCreate中读取EditText字段,并且代码需要一个数字,所以需要在XML中设置“示例”数字

从XML中删除数字时,您需要:

检查空值

    String timercalisma = edittextcalisma.getText().toString();
    String timermola = edittextmola.getText().toString();
    if(timercalisma == null || timercalisma.isEmpty()) {
        timercalisma = "0";
    }
    if(timermola == null || timermola.isEmpty()) {
        timermola = "0";
    }
    long calismapo = Long.parseLong(timercalisma) * 60000;
    long molapo = Long.parseLong(timermola) * 60000;
或按按钮读取字段

    baslat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String timercalisma = edittextcalisma.getText().toString();
            String timermola = edittextmola.getText().toString();
            long calismapo = Long.parseLong(timercalisma) * 60000;
            long molapo = Long.parseLong(timermola) * 60000;
            pomodoro.setVisibility(View.VISIBLE);
            calisma.start();

        }
    });

请正确阐述。你能等一下吗?好的,你现在能看吗?我不明白你想说什么。可能会晚些,但谢谢你。如何添加暂停,按下按钮上的完成倒计时计时器@BlundellI添加2个完成和暂停按钮@Blundel完成时,使用
calisma.cancel()
,暂停时,使用
onTick
中的时间,执行
cancel
start
(从上次保存在onTick中的时间开始)。calisma.cancel(),无法工作。当ıcancel calisma时,我的应用程序关闭了。请看@布伦德尔