当前位置: 首页 > 知识库问答 >
问题:

Button在Android Studio中只工作一次

苏季同
2023-03-14

所以,我有一个按钮,功能是更新我的文本视图。每次有人点击到当前日期的按钮。但是,由于某种原因,它只起作用一次。我试过XML onClick方法和Java的setOnClickListener,没有一个管用。有人能帮我解决这个问题吗?

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

import org.w3c.dom.Text;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

    Date date = Calendar.getInstance().getTime();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void btnClick(View i){
        String time = ((EditText) findViewById(R.id.editTextTime)).getText().toString();
        String url = ((EditText) findViewById(R.id.editText)).getText().toString();
        TextView txtErr = findViewById(R.id.errorLog);
        txtErr.setText(date.toString());
    }
}

共有1个答案

狄富
2023-03-14

您只初始化了一次日期(当您的mainactivity被实例化时)。因此,每次设置文本时,使用的都是同一个date实例。

相反,您应该在每次单击该按钮时获得一个新的日期,例如:

public void btnClick(View i){
        String time = ((EditText) findViewById(R.id.editTextTime)).getText().toString();
        String url = ((EditText) findViewById(R.id.editText)).getText().toString();
        TextView txtErr = findViewById(R.id.errorLog);
        Date date = Calendar.getInstance().getTime();
        txtErr.setText(date.toString());
    }

另外,我建议不再使用calendarAPI。现在来看看新的、更现代化的java.time库,您可以在这里看到它。

 类似资料:
  • 我是一个很新的编程人员,我正在尝试使用Javascript制作岩石剪刀,我遇到了这个问题。每当我点击岩石图像,它会产生一个0和2之间的随机数,如果这个数字是0,那就是平局,如果是1,那玩家输了,如果是2,那玩家赢了。但当我运行这段代码时,它只在数字为0时才起作用。所以当我点击按钮时,如果数字是0,它会显示“它是一个领带”,但如果不是0,它不会显示任何东西。但当我再次尝试单击时,它不起作用。我必须刷

  • 我正在尝试进入jQuery/Ajax,我甚至不敢相信我无法通过第一个测试。我遵循的是在Jquery API站点上找到的一个示例,我遵循的是一个T。 null 那么这是浏览器的问题吗?为什么Chrome和IE不显示这个加载列表,而firefox显示呢?我不知道是我的代码还是环境让我在学习的时候感到愤怒。

  • 问题内容: 当您从导航栏 项目中的按钮显示模式时,这是SwiftUI中的错误。在下面的代码中,按钮1可以正常工作,但是按钮2只能工作一次: 该错误来自去年年中,至今仍存在于Xcode 11.3.1 + iOS 13.3 Simulator和iOS 13.3.1 iPhone XS中。 这里有任何解决方法可以使按钮起作用? 编辑: 似乎要点击的区域下降到某个地方,可以点击下面的按钮以显示模式。 临时

  • 我想做一个应用程序,使用谷歌翻译API。自从我添加了 我的构建中的依赖项。gradle我有个错误: 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-自动值-1.2。jar(com.google.auto.value:auto-value:1.2)或者,设置android。defaultConfig。javaCom

  • 我试图详细学习JavaEE7,但我在从数据库中获取记录并在JSF页面上显示它们方面遇到了问题。 我使用Wildfly10.1.0和Oracle XE11。我创建了以下数据源: 在JBoss的管理接口中的连接测试是成功的。 这是我的: 当我通过运行WildFly,并通过部署我的应用程序时,它可以工作。 当我在Eclipse中启动服务器并尝试使用相同的命令部署应用程序时,它失败了--因为我添加了JPA

  • 我正在设计一个指导决策表来执行一些工作项,这些工作项只是在executeWorkItem函数中打印一些文本。 在工作台设置中,我已经将工作项处理程序添加到有状态会话中。另外,我在一个wid文件中定义了它们。 没有条件检查,只是因为我想在每次有请求发送到KIE服务器时触发它。 这是向KIE服务器激发的请求 我可以看到工作项在第一次向KIE服务器激发请求时被执行。然而,它不再运行,因为我不能看到任何打