多次单击相等按钮时,计算器应用程序崩溃,该如何解决此问题?

问题描述

如何防止由于多次单击按钮而导致应用崩溃。

这是代码

equal.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                compute();
                ACTION = EQU;
                result.setText(result.getText().toString() + String.valueOf(val2) + "=" + String.valueOf(val1));
                // 5 + 4 = 9
                info.setText(null);
            }
        });

解决方法

您好,您只需要删除info.settext(“ null”)

public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            return new WebHostBuilder()
                .UseKestrel(opt =>
                {
                    opt.AddServerHeader = false;
                    opt.Limits.MaxRequestLineSize = 16 * 1024;
                })
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIIS()
                .UseIISIntegration()
                .UseUrls("https://localhost:44301")
                .UseSerilog((context,config) =>
                {
                    config.Enrich.FromLogContext()
                    .Enrich.WithExceptionDetails()
                    .Enrich.WithMachineName()
                    .WriteTo.Console()
                    .WriteTo.File(Path.Combine(context.HostingEnvironment.WebRootPath,"./elastic-errors.txt"),Serilog.Events.LogEventLevel.Error,rollingInterval: RollingInterval.Day)
                    .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(context.Configuration["ElasticConfiguration:Uri"]))
                    {
                        IndexFormat = context.Configuration["ElasticConfiguration:IndexFormat"],CustomFormatter = new ElasticsearchJsonFormatter(),AutoRegisterTemplate = true,NumberOfShards = 2,NumberOfReplicas = 1,BufferCleanPayload = (failingEvent,statuscode,exception) =>
                        {
                            dynamic e = JObject.Parse(failingEvent);
                            return JsonConvert.SerializeObject(new Dictionary<string,object>()
                            {
                                { "@timestamp",e["@timestamp"] },{ "level","Error" },{ "message","Error: " + e.message },{ "messageTemplate",e.messageTemplate },{ "failingStatusCode",statuscode },{ "failingException",exception }
                            });
                        },BufferIndexDecider = (logEvent,offset) => "log-serilog-" + (new Random().Next(0,2)),}).Enrich.WithProperty("Environment",context.HostingEnvironment.EnvironmentName)
                    .ReadFrom.Configuration(context.Configuration);
                })
                .UseStartup<Startup>();
        }

);

,

我已经通过将if语句放在第一位来解决了我的问题

equal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (info.getText().length() != 0) { 
                compute();
                ACTION = EQU;
                result.setText(result.getText().toString() + String.valueOf(val2) + "=" + String.valueOf(val1));
                // 5 + 4 = 9
                info.setText(null);
            }}
        });