Java 通过线程在TextView中闪烁光标
我想在文本视图中创建一个闪烁的光标。。到目前为止,我得到了这个:Java 通过线程在TextView中闪烁光标,java,android,multithreading,cursor,Java,Android,Multithreading,Cursor,我想在文本视图中创建一个闪烁的光标。。到目前为止,我得到了这个: myTv = (TextView)findViewById(R.id.myTv); //blinking Cursors Thread class CursorThread extends Thread { public void run() { while (true) { my
myTv = (TextView)findViewById(R.id.myTv);
//blinking Cursors Thread
class CursorThread extends Thread
{
public void run()
{
while (true)
{
myTv.setText("|");
try
{
sleep(1000);
}
catch (InterruptedException e)
{}
myTv.setText(" ");
try
{
sleep(1000);
}
catch (InterruptedException e)
{}
}
}
}
CursorThread cThread = new CursorThread();
cThread.start();
如果我运行这个应用程序,我会崩溃。我做错了什么?
我不知道很多关于线程的事情。。。
哦,这条线当然是我主要活动中的一个内部类
有人可以帮忙吗?您正试图从另一个线程(不是主
UI
线程)修改视图。您可以使用处理程序
从CursorThread
修改TextView
您必须使用如下所示的runOnUI
方法从另一个线程访问UI线程
runOnUiThread(new Runnable() {
public void run() {
keresetTv.setText(" ");
}
});
或者使用
handler.post(newrunnable…)代码>另一种选择:子类TextView并具有onDraw调用postInvalidateDelayed()
,在数毫秒后使自身失效。在onDraw中跟踪两次调用之间的时间,并适当地闪烁光标