Bom dia a todos… eu estou desenvolvendo um aplicativo para uma pessoa que tem uma limitação motora,
logo fica muito difícil para ela selecionar um botão de um menu por exemplo…
por este motivo estou precisando aplicar uma técnica chamada de “Varrimento”, a ideia é basicamente a seguinte :
o menu terá TRÊS opções (eu pensei em colocar 3 Textview) : OPÇÃO 1 , OPÇÃO 2 E OPÇÃO 3
com o passar do tempo (utilizando um thread), o background de um dos Textview vai mudando para vermelho (começa no primeiro e depois vai seguindo para os outros, sempre vai ter apenas um fundo vermelho).
isso vai dar a ideia de que as opções vão sendo selecionadas de forma automática… quando o background ficar vermelho na OPÇÃO , que o usuário quiser ele toca em qualquer parte da tela ( irei utilizar o onTouchEvent).
bom pessoal , com relação ao toque da tela , já esta implementado , entretanto a questão de mudar de forma “dinâmica” o background do textview está com erro…
eu estou fazendo desta forma :
[code]int aux=0;
while(true){
try {
Thread.sleep(5000);
switch (aux) {
case 0:
t2.setBackgroundColor(Color.RED);
aux=1;
break;
case 1:
t3.setBackgroundColor(Color.RED);
aux=2;
break;
case 2:
t4.setBackgroundColor(Color.RED);
aux=0;
break;
default:
break;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}// fim while[/code]
alguém teria uma ideia de fazer isso ? não precisa ser com textview
Sério que o único título que você conseguiu pensar para seu tópico foi “Dúvida”? Que tal editar o seu primeiro post e dar um título que ajude quem vai te responder a saber exatamente qual é a dúvida?
[quote=AlvaroCamara]Bom dia a todos… eu estou desenvolvendo um aplicativo para uma pessoa que tem uma limitação motora,
logo fica muito difícil para ela selecionar um botão de um menu por exemplo…
por este motivo estou precisando aplicar uma técnica chamada de “Varrimento”, a ideia é basicamente a seguinte :
o menu terá TRÊS opções (eu pensei em colocar 3 Textview) : OPÇÃO 1 , OPÇÃO 2 E OPÇÃO 3
com o passar do tempo (utilizando um thread), o background de um dos Textview vai mudando para vermelho (começa no primeiro e depois vai seguindo para os outros, sempre vai ter apenas um fundo vermelho).
isso vai dar a ideia de que as opções vão sendo selecionadas de forma automática… quando o background ficar vermelho na OPÇÃO , que o usuário quiser ele toca em qualquer parte da tela ( irei utilizar o onTouchEvent).
bom pessoal , com relação ao toque da tela , já esta implementado , entretanto a questão de mudar de forma “dinâmica” o background do textview está com erro…
eu estou fazendo desta forma :
[code]int aux=0;
while(true){
try {
Thread.sleep(5000);
switch (aux) {
case 0:
t2.setBackgroundColor(Color.RED);
aux=1;
break;
case 1:
t3.setBackgroundColor(Color.RED);
aux=2;
break;
case 2:
t4.setBackgroundColor(Color.RED);
aux=0;
break;
default:
break;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}// fim while[/code]
alguém teria uma ideia de fazer isso ? não precisa ser com textview
[/quote]
Qual erro que está? Não está mudando o background?
Além disso, seu código está trocando o background para vermelho, mas onde ele está destrocando novamente para a cor original?
realmente esqueci de voltar a colocar “Branco” o background , entretanto isso resolvo rapidamente…
com relação ao erro, segue abaixo o log :
03-04 04:41:02.710: W/dalvikvm(881): threadid=1: thread exiting with uncaught exception (group=0xb3a6cba8)
03-04 04:41:02.770: E/AndroidRuntime(881): FATAL EXCEPTION: main
03-04 04:41:02.770: E/AndroidRuntime(881): Process: com.example.apcc, PID: 881
03-04 04:41:02.770: E/AndroidRuntime(881): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.apcc/com.example.apcc.MainActivity}: java.lang.NullPointerException
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.os.Handler.dispatchMessage(Handler.java:102)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.os.Looper.loop(Looper.java:136)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-04 04:41:02.770: E/AndroidRuntime(881): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 04:41:02.770: E/AndroidRuntime(881): at java.lang.reflect.Method.invoke(Method.java:515)
03-04 04:41:02.770: E/AndroidRuntime(881): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-04 04:41:02.770: E/AndroidRuntime(881): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-04 04:41:02.770: E/AndroidRuntime(881): at dalvik.system.NativeStart.main(Native Method)
03-04 04:41:02.770: E/AndroidRuntime(881): Caused by: java.lang.NullPointerException
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.Activity.findViewById(Activity.java:1884)
03-04 04:41:02.770: E/AndroidRuntime(881): at com.example.apcc.MainActivity.<init>(MainActivity.java:15)
03-04 04:41:02.770: E/AndroidRuntime(881): at java.lang.Class.newInstanceImpl(Native Method)
03-04 04:41:02.770: E/AndroidRuntime(881): at java.lang.Class.newInstance(Class.java:1208)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
03-04 04:41:02.770: E/AndroidRuntime(881): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
03-04 04:41:02.770: E/AndroidRuntime(881): ... 11 more
O setContentView deve ser chamado com o layout apropriado ANTES de chamar findViewById.
Você a princípio não deveria fazer NADA relacionado a interface gráfica no construtor de uma Activity, pois não é seguro. Em geral, você precisa usar o método onCreate no lugar do construtor.
Se isso não resolver, poste o seu construtor da classe MainActivity e destaque a linha 15.
Não use Thread.sleep na mainThread, vai congelar sua aplicação.
Nesse caso, usar a classe Handler é uma alternativa.
Veja esse exemplo que postei no meu blog: http://agorandroid.blogspot.com.br/2012/09/usando-o-handler-como-timer-2.html
Para encerrar use o método: mHandler.removeCallbacks(seuRunnable);
verifique se o id da sua textview é correspondente ao informado na
inicialização da mesma na sua activity pelo metodo:
no metodo construtor “onCreate”.
Espero ter ajudado
Isso não seria melhor se implementado pelo sistema operacional do aparelho?