2012-11-15 25 views
2

我有一個TextView組件。我想在每個Activity中顯示TextView,並且不想在每個佈局中編寫此組件。關於LayoutInflater和膨脹

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是我找到的組件。我怎麼能讓TextView在當前界面中顯示?

回答

1

您可以包含此佈局中的任何其他佈局文件與<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

如果你不希望添加包含標記您所有的佈局,

您可以使用抽象基類,然後從您的抽象類擴展您的所有新課程,

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); 
    } 

}