Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: Suportar configurações diferentes

Boa tarde Geovani,

Algumas coisas pode ser feito tranquilamente via resources, tipo traduções.

Vou usar o exemplo de Master e Detail pra celular e tablet pra ver se consigo me fazer entender.
Suponha uma interface específica para tablet que é diferente da interface para telefone.
Eu faço o seguinte, uso layouts diferentes aí faço um findViewById numa view pra descobrir qual layout eu estou usando e realizar o comportamento para aquele caso. Mas o código fica algo do tipo:
class MainActivity extends Activity {
   
void desenha() {
       
View mainView = findViewById(R.id.main);
       
if (mainView != null) {
           
// Carregou interface para celular

           
// Desenha um por linha
       
} else {
           
// Carregou interface para tablet
           
// No layout para tablet os ID seriam diferentes

           
// Desenha 5 por linha
           
// Carrega informações detalhadas
       
}
   
}
}

O que eu estava sugerindo seria algo do tipo:
abstract class MainActivity extends Activity {
    
Intent getIntent(Context context) {
       
if (celular) {
            return 
new Intent(context, MainActivityNormal.class);
        } else {
            return  new Intent(context, MainActivityLarge.class);
        }
    }
   
abstract void desenha();
}

class MainActivityNormal extends Activity {
    // Métodos que independem da configuração

   
@Override
   
void desenha() {
        // Carregou interface para celular

       
// Desenha um por linha
    }
}

class MainActivityLarge extends MainActivity {
   
@Override
    void desenha() {
   
    // Carregou interface para tablet
       
// No layout para tablet os ID seriam diferentes

       
// Desenha 5 por linha
       
// Carrega informações detalhadas
    }
}

E usava algo parecido com uma factory toda vez que fosse chamar uma Activity pra ele retornar a activity correta.
Eu coloquei esse exemplo pra não complicar muito a pergunta, mas a ideia seria separar o comportamento da decisão de qual algoritmo usar conforme a configuração.
Assim sempre que tivesse uma alteração para tablet eu só alteraria o layout e a classes correspondentes, se alterasse algo só pra tablet só alteraria nos arquivos com sufixo large.
Outra coisa é que o modo como decidir se usa um ou outro ficaria separado assim se eu mudar o layout só vou alterar num lugar e não em todos os lugares onde precisava verificar antes de tomar uma ação ou outra.

Consegui explicar melhor agora?

Abraço,

PS: Eu escrevi esse código agora direto aqui no navegador porque estou sem IDE aqui então me desculpe se tiver algum erro de sintaxe.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário