Java 在片段中的计时器刻度上更新TextView
我在更新选项卡片段中的文本视图时遇到问题。我想用全局变量数据每秒在TextView上设置文本。这在活动中效果很好,但在片段中效果不好。错误是:textView2无法解决。如果有更好的方法更新此内容,或者这不好,请告诉我Java 在片段中的计时器刻度上更新TextView,java,android,Java,Android,我在更新选项卡片段中的文本视图时遇到问题。我想用全局变量数据每秒在TextView上设置文本。这在活动中效果很好,但在片段中效果不好。错误是:textView2无法解决。如果有更好的方法更新此内容,或者这不好,请告诉我 public class FragmentA extends Fragment { //timer private TimerTask mTimerTask; private Timer timer = new Timer();
public class FragmentA extends Fragment {
//timer
private TimerTask mTimerTask;
private Timer timer = new Timer();
private final Handler timerHandler = new Handler();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View myFragmentView = inflater.inflate(R.layout.fragment_a, container, false);
//TextView for Device name
TextView textView3 = (TextView)myFragmentView.findViewById(R.id.TextView3);
//TextView for Serial number
TextView textView5 = (TextView)myFragmentView.findViewById(R.id.TextView5);
//TextView for Software version
TextView textView7 = (TextView)myFragmentView.findViewById(R.id.TextView7);
onTimerTick();
timer.schedule(mTimerTask, 10, 1000);
return myFragmentView;
}
//timer tick on every 1 s
public void onTimerTick() {
mTimerTask = new TimerTask() {
//this method is called every 1ms
public void run() {
timerHandler.post(new Runnable() {
public void run() {
//update textView
//ERROR:textView2 cannot be resolved
textView2.setText(m_info.deviceName);
Log.d("tag", "Hello from timer fragment");
}
});
}};
}
}
onTimerTick()应该在MainActivity类中;
然后在你的主要活动课上
TextView textViewForTimerTick=this.findViewById(R.id.text_view_2);// id of a textView in your fragment;
就这些
因此:
试试这个
将textView3
声明为字段。
文本视图文本视图3
并在onCreateView()中初始化它
而且
在onCreateView
中初始化处理程序,以便允许访问UI。
对Handler也执行同样的操作
Handler timerHandler;
而且
timerHandler=new Handler();
您的代码中textView2
在哪里?对不起,例如TextView3。。。textView3.setText(m_info.deviceName);这就像一个符咒:)当Pause方法上没有选择tab时,我需要停止计时器吗?因为在调试中,我可以看到计时器运行,即使未选中该选项卡。这能解决问题吗?
Handler timerHandler;
timerHandler=new Handler();