-4

当用户通过微调器输入时间并且该时间是 17:00 时,我想返回一个错误 Toast,现在我已在微调器中将 beginTime 声明为字符串,我需要将其转换回 Int 以便检查该值是否等于 17:00

 public void checkBeginTime()

 String begingTime = beginTimespinner.getText().toString();

   if (beginTime == 17:00)
   {
   Toast.etc
   }

   else 

   {
   add beginTime;
   }

如果我尝试这样做,那么它将无法工作:,因为有什么想法吗?

4

5 回答 5

1
   your_str = your_str.replace(":", ""); 

   your_int = Intger.parseInt(your_str);

你最终得到一个唯一的整数。

于 2012-04-24T13:52:31.963 回答
1

首先假设 beginTime 是一个字符串,那么您永远不会将字符串与 == 进行比较。您必须使用 .equals() 方法。(谷歌为什么不)。

在 Java 中,您可以这样做:

private void testVal(String beginTime) {
        String testVal = "17:00";
        if (testVal.equals(beginTime)){
            System.out.println("Matched " + beginTime);
            // Or whatever you want in Android, such as Toast
        }
        else{
            System.out.println("No match with " + beginTime);
            // Or whatever you want in Android, such as Toast
        }

    }

您可以使用以下方法调用该方法:

String beginTime = "17:00"; // or in your case beginTimespinner.getText().toString();
test.testVal(beginTime);
于 2012-04-24T14:47:34.747 回答
0
int MyInt=Integer.parseInt("17.00");
于 2012-04-24T13:51:37.957 回答
0

假设您正在使用Spinner让用户输入时间,您是否考虑过使用TimePickerTimePickerDialog来代替?

以下代码片段来自 Time Picker 教程。我只粘贴了相关方法来说明我的观点,但完整的教程可以在这里找到:

public class HelloTimePickerActivity extends Activity {
private TextView mTimeDisplay;
private Button mPickTime;

static final int TIME_DIALOG_ID = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // capture our View elements
    mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);
    mPickTime = (Button) findViewById(R.id.pickTime);

    // add a click listener to the button
    mPickTime.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showDialog(TIME_DIALOG_ID);
        }
    });

  // snip...
}

// the callback received when the user "sets" the time in the dialog
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        mHour = hourOfDay;
        mMinute = minute;
    }
};

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case TIME_DIALOG_ID:
        return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, false);
    }
    return null;
    }
}

如您所见,回调onTimeSet()以小时和分钟作为int值传递,便于您检查。

于 2012-04-24T18:42:41.857 回答
0

很难理解你在问什么。将来,请在发布之前花一些时间来收集您的想法。

不过我会刺一下。

“17:00”

是你所说的字符串。通常,在谈论 string -> int 转换时,最终目标很明确,即很容易理解您想要什么

“15”-> 15;"-2" -> -2 // 等等

由于这个原因冒号很棘手,你想要 17 还是 1700?很明显很不一样。不过,您可以通过字符串操作来控制它。假设你想要 1700,你可以这样做:

String str = "17:00";
int StrAsInt = Integer.ParseInt(str.replace(":",""));

或者对于 17,子字符串索引 0 到冒号的索引。关键是,您需要自己做一些腿工作才能将类似的东西转换为整数。

于 2012-04-24T13:56:48.227 回答