java - 无法从 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();
解决方案
字符串到达时间 = 到达时间.getText().toString(); 如果分配的字符串和显示的字符串相同。
永远不要在任何时间或日期选择器中声明视图。它应该在 onCreate() 方法中,否则您将无法从时间选择器之外的该文本视图中获取数据。
推荐阅读
- wordpress - public_html 中的非 Wordpress 文件/文件夹不起作用
- jsp - 如果值是动态的,如何将输入值作为字符串获取?
- python - 如何垂直附加项目python?
- javascript - 在高阶组件中使用 ref
- java - 如何在没有认证问题的情况下连接到 URL?
- c - 为什么 Knuth 使用这种笨拙的递减?
- javascript - 单击按钮后如何从 iframe 启动音频流
- dart - 如何在资源控制器中获取客户端远程 IP 地址
- bash - 重命名嵌套结构中的多个文件
- reactjs - SetState and React-Native lifecycle