java 传递int_java - 将int的值传递到OnClick方法之外 - SO中文参考 - www.soinside.com

将int的值传递到OnClick方法之外

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

因此,我希望所有这些变量在通过OnClick方法后都获得值。当我将日志放入方法中时,它们还可以,但是在外面...我知道它们会销毁,因为它是OnClick方法,它们是本地的,但我不知道如何保存它们。请如果您知道如何帮助重写代码。谢谢!package com.exemple.android.calendar;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.text.Editable;

import android.text.InputFilter;

import android.text.Spanned;

import android.text.TextWatcher;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.Toast;

public class NewEventActivity extends AppCompatActivity {

//step 1.A:create objects

public EditText DayEditText;

public EditText MonthEditText;

public EditText YearEditText;

public EditText StartingHourEditText;

public EditText StartingMinuteEditText;

public EditText EndingHourEditText;

public EditText EndingMinuteEditText;

public EditText Title;

public RadioGroup answer1;

public Button NewEventButton;

int day, month, year, s_hour, s_min, e_hour, e_min;

String title;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.new_event_page);

//Step 1.B: assign objects

DayEditText = findViewById(R.id.DayEditText);

MonthEditText = findViewById(R.id.MonthEditText);

YearEditText = findViewById(R.id.YearEditText);

StartingHourEditText = findViewById(R.id.StartingHourEditText);

StartingMinuteEditText = findViewById(R.id.StartingMinuteEditText);

EndingHourEditText = findViewById(R.id.EndingHourEditText);

EndingMinuteEditText = findViewById(R.id.EndingMinuteEditText);

Title = findViewById(R.id.TitleEditText);

answer1 = findViewById(R.id.Answer1);

NewEventButton = findViewById(R.id.CreateEventButton);

//Step 2: get data into variables

//Step 2.B: get data and assign

//PROBLEM: If we just extract, the code won't be run because there's nothing to extract yet. We need a conditional.

//SOLUTION: Create a condition for pressing the button, and then extract the variables when the button is pressed.

NewEventButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

title = Title.getText().toString();

day = Integer.parseInt(DayEditText.getText().toString());

month = Integer.parseInt(MonthEditText.getText().toString());

year = Integer.parseInt(YearEditText.getText().toString());

s_hour = Integer.parseInt(StartingHourEditText.getText().toString());

s_min = Integer.parseInt(StartingMinuteEditText.getText().toString());

e_hour = Integer.parseInt(EndingHourEditText.getText().toString());

e_min = Integer.parseInt(EndingMinuteEditText.getText().toString());

}

});

Log.i("INFO:",title+" "+day+" "+month+" "+year+" "+s_hour+" "+s_min+" "+e_hour+" "+e_min);

}

}

java

android

1个回答

0

投票

您的代码是正确的,这只是一个理解问题。

实际上,Log方法通常不打印任何内容,因为未设置变量。如果发生点击,OnClick中的代码称为only。然后,当单击发生时,您的变量将正确设置。

了解了吗?

热门问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值