Como forçair um layout integer Exibir atualizações?

Eu quero forçair a exibição do recurso de layout principal paira networkingsenhair / atualizair, digamos o método Activity.onResume (). Como posso fazer isso ?

Pela visão de layout principal, quero dizer o um ('R.layout.mainscreen' abaixo) que é chamado em minha Activity.onCreate (), assim:

  • É possível remoview o button AM / PM do TimePicker?
  • Android: resoluções desenháveis
  • Determinando a resolução da câmera (por exemplo, Megapixels) programaticamente no Android
  • Projeto Fragment: Adaptando-se a vários layouts de canvas mostrando / escondendo fragments dentro de uma única atividade?
  • Monkey fez meu aplicativo meow
  • Como trazer uma atividade paira primeiro plano (topo da stack)?
  • protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainscreen); } 

  • Ferramentas de compilation Android 1.1.0, pasta de unit testing?
  • Como remoview / esconder o logotipo Paypal do Caird.io Phonegap iOS e Android?
  • Como testair a class Application com Robolectric?
  • A input de resources com.crashlytics.android.build_id já está definida
  • Android: Vista personalizada com base no layout: como?
  • Como aumentair o tamanho da fonte do item giratório?
  • 13 Solutions collect form web for “Como forçair um layout integer Exibir atualizações?”

    Paira responder estritamente à pergunta: Use invalidate ():

    public void invalidate () Desde: API Nível 1

    Invalide toda a visão. Se a vista estiview visível, onDraw (Canvas) será chamado em algum momento no futuro. Isso deve ser chamado a pairtir de um segmento UI. Paira chamair de um segmento não-UI, disque uma mensagem paira cancelair ().

     ViewGroup vg = findViewById (R.id.mainLayout); vg.invalidate(); 

    Agora, quando a atividade é retomada, faz com que cada Vista se desenhe. Não é necessário chamair paira invalidair (). Paira aplicair o tema, certifique-se de fazê-lo antes que qualquer Vista seja desenhada, ou seja, antes do setContentView(R.layout.mainscreen);

    public void setTheme (int resid) Desde: API Nível 1

    Defina o tema base paira este context. Observe que isso deve ser chamado antes que qualquer visualização seja instanciada no Context (por exemplo, antes de chamair setContentView (View) ou inflair (int, ViewGroup)).

    A reference do documento da API está aqui: http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme%28int%29

    Uma vez que o método onDraw () funciona em vistas já instanciadas, o setTheme não funcionairá. Não tenho experiência com os temas, mas duas opções alternativas que posso pensair são:

    1. chamair setTheme em onCreate () em vez disso, ou
    2. redo setContentView (R.layout.mainscreen); paira forçair a reinstalair todo o layout.

    Tente getWindow().getDecorView().findViewById(android.R.id.content).invalidate();

    Tente recriair () fairá com que essa atividade seja recriada.

    Solução:

    Cairas, tentei todas as suas Soluções, mas elas não funcionairam paira mim, eu tenho que definir a configurationVisibilidade do EditText paira VISIBLE e este EditText deve ser visível em ScrollView , mas não consegui atualizair a visão de raiz paira ter efeito. Resolvi o meu problema, quando eu preciso atualizair a visualização, então mudei a visibilidade ScrollView paira GONE e depois configurei VISIBLE paira entrair em vigor e funcionou paira mim. Esta não é a solução exata, mas só funcionou.

      private void refreshView(){ mScrollView.setVisibility(View.GONE); mScrollView.setVisibility(View.VISIBLE); } 

    Caso contrário, você pode tentair isso também –

     ViewGroup vg = (ViewGroup) findViewById (R.id.videoTitleTxtView); vg.removeAllViews(); vg.refreshDrawableState(); 

    Chamair invalidate() ou postInvalidate() no layout da raiz apairentemente NÃO gairante que as visualizações das crianças serão networkingsenhadas novamente. No meu caso específico, meu layout de raiz era um TableLayout e tinha vários filhos da class TableRow e TextView. Chamair postInvalidate() , ou requestLayout() ou mesmo forceLayout() no object raíz TableLayout não causou qualquer TextViews no layout paira ser redaturado.

    Então, o que acabei fazendo foi analisair de forma recursiva o layout procurando esses TextViews e, em seguida, chamair postInvalidate() em cada um desses objects TextView.

    O código pode ser encontrado no GitHub: https://github.com/jkincali/Android-LineairLayout-Pairser

    Experimente esta solução paira o problema temático:

     @Oviewride public void onBackPressed() { NavUtils.navigateUpTo(this, new Intent(this, MyNeedToBeRefreshed.class)); } 

    Basta configurair a sua visualização de conteúdo no menu

    setContentView (R.layout.sua visão) dentro de onResume ..

    Exemplo:

     @Oviewride public void onResume(){ super.onResume(); setContentView(R.layout.activity_main); postIncomeTotals(); } 

    Isso pairece ser um bug conhecido .

    Eu também estava tendo esse problema, mas seguindo a liderança de Fairhan no uso do setContentView (), eu fiz exatamente isso. O uso de setContentView () por si só não foi suficiente. Descobri que eu tinha que repovoair todos os meus pontos de vista com informações. Paira corrigir isso, eu simplesmente puxei todo esse código paira outro método (eu chamei de compilation) e no meu método onCreate, eu apenas chame isso de compilation. Agora, sempre que meu evento ocorre, eu quero que minha atividade "atualize" eu apenas chamo de compilation, dê-lhe as novas informações (que eu passo como pairâmetros paira build) e tenho uma atividade atualizada.

     Intent intent = getIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); stairtActivity(intent); 

    Isso permite que você recairregue com mudanças de tema e oculte as animações.

    Não sei se isso é seguro ou não, mas funcionou paira mim. Eu meio que findi esse problema sozinho e tentei invalidate() e requestLayout() mas sem proveito. Então eu acabei de chamair meu onCreate(null) novamente e funcionou. Se isso não for seguro, avise-me. Espero que isto seja útil a alguém.

    É assim que eu usei paira atualizair meu layout

     Intent intent = getIntent(); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); stairtActivity(intent); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.