<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                筆者近期在做項目時遇到了如下情況:有**超過10個**的子界面需要用到差不多的一個標題欄,如下圖: ![](https://box.kancloud.cn/2016-03-01_56d551f03c301.jpg) 倘若直接在每個布局文件中寫一個這樣的Linearlayout,一方面重復性的代碼總是讓人不太舒服,另一方面,我需要對同樣的一個**返回鍵**在不同的布局中定義不同的id,然后還要在java文件中實現它的功能,實在是太讓人不爽了。 于是,筆者就想到了**自定義布局**。 **自定義布局**的好處就是在布局定義好之后,直接可以在布局文件中使用,如下圖: ![](https://box.kancloud.cn/2016-03-01_56d551f052f20.jpg) ? ? ? ? ??![](https://box.kancloud.cn/2016-03-01_56d551f066099.jpg) 不過由于每個布局的特殊性,所以還是需要一個方法——**設置textview的內容**,此處也是直接可以在代碼中實現。 上一下項目文件: ![](https://box.kancloud.cn/2016-03-01_56d551f0769bf.jpg) MainActivity: ~~~ import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,TwoActivity.class); startActivity(intent); //此處千萬外要注意,不要寫finish(),在TwoActivity中按下返回鍵之后會摧毀TwoActivity的布局, //然后顯示的就是MainActivity的布局,倘若把MainActivity的布局給finnish掉后,程序會直接退出 } }); } } ~~~ TwoActivity: ~~~ import android.app.Activity; import android.os.Bundle; public class TwoActivity extends Activity{ private TitleLayout title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_two); //綁定TitleLayout //設置TitleLayout中text內容 title=(TitleLayout)findViewById(R.id.title); title.setTitleText("Light_Control"); } } ~~~ TitleLayout: ~~~ import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class TitleLayout extends LinearLayout { private Button titleBack; private TextView titleText; public TitleLayout(Context context, AttributeSet attrs) { super(context, attrs); //加載布局文件,與setContentView()效果一樣 LayoutInflater.from(context).inflate(R.layout.my_view, this); titleBack = (Button) findViewById(R.id.title_back); titleText = (TextView) findViewById(R.id.title_text); //設置返回鍵的點擊效果 titleBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ((Activity) getContext()).finish(); } }); } //創建一個方法來改變title中text的內容 public void setTitleText(String text) { titleText.setText(text); } } ~~~ activity_main: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="這是第一個Activity" android:textSize="30sp" android:gravity="center"/> </LinearLayout> ~~~ activity_two: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.example.user_defined_view.TitleLayout android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.example.user_defined_view.TitleLayout> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="這是第二個Activity" android:textSize="30sp"/> </LinearLayout> ~~~ my_view: ~~~ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content" android:background="#272727"> <Button android:id="@+id/title_back" android:layout_width="45dp" android:layout_height="45dp" android:layout_gravity="center_vertical" android:background="@drawable/button_back"/> <TextView android:id="@+id/title_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a Title" android:padding="12dp" android:layout_gravity="center_vertical" android:textSize="20sp" android:textStyle="bold" android:textColor="#fff"/> </LinearLayout> ~~~ 最后附上源碼地址:[http://download.csdn.net/detail/double2hao/9334387](http://download.csdn.net/detail/double2hao/9334387)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看