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

时间:2020-10-13 18:59:18

标签: android calculator

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

这是代码:

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);
            }
        });

2 个答案:

答案 0 :(得分:1)

您好,您只需要删除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>();
        }

);

答案 1 :(得分:0)

我已经通过将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);
            }}
        });