首页 > 解决方案 > 无法从 OnTimeSetListener 调用字符串

问题描述

我在我的应用程序中添加了一个 TimePicker。所选时间在 TextView 中正确显示,但我不能稍后调用字符串将其发送到服务器。

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

    mArrivalTimepicker = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            String ArrivalTimeString = hourOfDay + ":" + minute;
            TextView ArriavalTime = findViewById(R.id.arrival_time_tv);
            ArriavalTime.setText(ArrivalTimeString);
        }
    };
}

当我后来尝试调用它时,它说'无法解析符号'ArrivalTimeString'。

public void addMessage() {
    String arrivalTime = ArrivalTimeString;
}

谢谢你的协助!

编辑:我现在将 String 声明为全局的。我现在可以调用字符串,但它的值仍然是空的。

String ArrivalTimeString;

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

mArrivalTime = findViewById(R.id.arrival_time_tv);

mArrivalTimepicker = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            ArrivalTimeString = hourOfDay + ":" + minute;
        }
    };
mArrivalTime.setText(ArrivalTimeString);
}

所以在我选择了一个时间后,它仍然不会显示选择的时间。

解决方案:我仍然.setText.OnTimeSetListener. 稍后要使用字符串,我使用

ArrivalTimeString = mArrivalTime.getText().toString();

标签: javaandroidandroid-studio

解决方案


字符串到达​​时间 = 到达时间.getText().toString(); 如果分配的字符串和显示的字符串相同。
永远不要在任何时间或日期选择器中声明视图。它应该在 onCreate() 方法中,否则您将无法从时间选择器之外的该文本视图中获取数据。


推荐阅读