使Textview成为全局

时间:2018-07-16 12:28:04

标签: java android

我想知道是否有任何方法可以使每个屏幕上的文本视图可见,这样我就不必在每个活动中单独创建一个文本视图。

我想这样做,以便可以在每个屏幕上显示我的应用程序版本以进行调试。

谢谢。

1 个答案:

答案 0 :(得分:2)

是的!有可能。

看到您必须添加此代码。

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

public class MainActivity extends BaseActivity {

}

,您将找到版本文本。

只需添加一些代码。

  

(1)创建一个表示版本文本的布局。

layout_version.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" // or match_parent (according to your need)
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvVersion"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... other properties
        />

    <!--... other component if required-->

</LinearLayout>
  

(2)将此添加到您的活动布局中,例如 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   ...>

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

</LinearLayout>
  

(3)创建一个 BaseActivity.class 或添加我的代码(如果已有的话)。

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import com.innovanathinklabs.sample.BuildConfig;
import com.innovanathinklabs.sample.R;

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tvVersion = findViewById(R.id.tvVersion);
        if (tvVersion != null) tvVersion.setText(BuildConfig.VERSION_NAME);
    }
}
  

(4)最后一步是将所有活动扩展BaseActivity.class

public class MainActivity extends BaseActivity {

}

仅此而已!