2012-11-15 4 views
2

J'ai un composant TextView. Je veux montrer le TextView dans chaque activité, et je ne veux pas écrire ce composant dans chaque mise en page.A propos de la dispositionInflater et gonfler

public class Test extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.alarm); 

     LayoutInflater flater = LayoutInflater.from(this); 
     View view = flater.inflate(R.layout.toolbar_clearbalk, null); 
     TextView text=(TextView)view.findViewById(R.id.now_time); 

    } 

now_time est le composant que j'ai trouvé. Comment pourrais-je faire pour afficher le TextView dans l'interface actuelle?

Répondre

1

Vous pouvez inclure cette disposition dans tout autre fichier de mise en page avec l'élément <include>:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <include layout="@layout/toolbar_clearbalk" /> 

    ... 


</LinearLayout> 
1

Si vous ne voulez pas ajouter d'inclure tag à votre toute mise en page,

Vous pouvez utiliser la classe de base abstraite, puis étendez votre toute nouvelle classe à partir de votre classe abstraite,

import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.TextView; 

abstract class BaseActivity extends Activity { 

    public View view; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     LayoutInflater flater = LayoutInflater.from(this);   
     view = flater.inflate(R.layout.toolbar_clearbalk, null); 
     TextView text=(TextView)view.findViewById(R.id.now_time); 
     text.setText("bla bla bla");   

    } 

} 


import android.os.Bundle; 
import android.widget.RelativeLayout; 

    public class MainActivity1 extends BaseActivity 
{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     RelativeLayout parent = (RelativeLayout) findViewById(R.id.container); 
     parent.addView(view); 
    } 

} 



import android.os.Bundle; 
import android.widget.RelativeLayout; 

public class MainActivity2 extends BaseActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     RelativeLayout parent = (RelativeLayout) findViewById(R.id.container); 
     parent.addView(view); 
    } 

} 


import android.os.Bundle; 
import android.widget.RelativeLayout; 

public class MainActivity3 extends BaseActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     RelativeLayout parent = (RelativeLayout) findViewById(R.id.container); 
     parent.addView(view); 
    } 

}