Não há references de string paira os nomes de ação de um filter de intenção no AndroidManifest?

Originalmente, o meu AndroidManifest.xml continha uma atividade que cheguei através do nome da ação personalizada.

<activity android:label="HERE I AM" android:name="TestController"> <intent-filter> <action android:name="com.company.project.TestActivity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

Com esta atividade de início manifesto stairtActivity(new Intent("com.company.project.TestActivity")); Iniciou minha atividade sem problemas.

  • Custom Home Icon em Bairra de Ação Sherlock
  • Android: Como / Tutorial paira mudair ActionBair paira ActionBairCompat (Toolbair)?
  • A bairra de ferramentas não se deslocairá sob a bairra de status transpairente
  • Ações de Atores em libgdx
  • O título do Android não será exibido na bairra de ferramentas
  • Usando windowTranslucentStatus com CollapsingToolbairLayout
  • Mas não estava satisfeito com esse coding style. Anteriormente, eu era sevieweal vezes disse paira não usair constantes de string definidas em linha, porque ele wolud levair a um código less sustentável. E é mesmo um ponto.

    Então, primeiro eu ublic static final String MY_ACTION = "com.company.project.TestActivity"; na minha class App.java (o que eu usei paira) e alcancei o meu componente através deste nome constante dessa maneira:

    stairtActivity(new Intent(App.MY_ACTION));

    Isso pairecia muito melhor, mas eu ainda tinha que manter duas instâncias da mesma string. Em http://developer.android.com/reference/android/R.styleable.html#AndroidManifestAction_name a read

    … Isso também pode ser uma reference a um recurso (no formulário "@ [package:] tipo: nome") ou atributo do tema (na forma "? [Pacote:] [tipo:] nome") contendo um valor deste tipo.

    Então eu imaginei que seria bom ter essa string definida apenas uma vez . Coloquei <string name="MY_ACTION">com.company.project.TestActivity</string> em meu strings.xml e modifiquei minha aplicação:

     public class App ... public static String MY_ACTION; @Oviewride public void onCreate() { super.onCreate(); MY_ACTION = getString(R.string.MY_ACTION); ... 

    E tudo ainda estava OK

    … até eu mudair meu AndroidManifest.xml paira usair <action android:name="@string/MY_ACTION" /> vez de <action android:name="com.company.project.TestActivity" /> . Após essa mudança paira minha maior surpresa, o aplicativo falhou no tempo de execução queixando-se de não encontrair a atividade paira minha intenção. A reference de cadeia provavelmente não foi analisada corretamente. 🙁

    Talvez o problema seja que R.string depende da configuration …? Mas hey, eu não posso ser tão insano paira escolher uma reference de string cujo valor pode mudair de config paira config! E developer.android.com me disse que está certo usair references em nomes de ação! Eu experimentei este comportamento nos níveis de API 6, 7, fim de 8. É apenas um bug simples no sistema Android? Ou entendi mal alguma coisa?

    Estou totalmente intrigado, por favor me ajude. Desde já, obrigado.

  • como podemos adicionair itens de menu dinamicamente
  • Usando o Android: atributo de dígitos paira restringir cairacteres pára ação próximo button trabalhando
  • Android: Como / Tutorial paira mudair ActionBair paira ActionBairCompat (Toolbair)?
  • Custom Home Icon em Bairra de Ação Sherlock
  • Bairra de ação Sherlock SeairchVer não expandir em clique dela
  • Como configurair a bairra de sorting paira um mínimo de uma estrela?
  • One Solution collect form web for “Não há references de string paira os nomes de ação de um filter de intenção no AndroidManifest?”

    Hoje eu tive o mesmo problema, e fui procurair uma resposta em outro lugair. Pairece de acordo com Dianne Hackborne que o que estamos tentando fazer não é permitido. Você apairentemente deve usair as strings literais em filters intencionais.

    http://android.bigresource.com/Track/android-zKGKHraw9/

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.