如何在每个活动中显示字幕文本

时间:2015-12-16 09:15:17

标签: android

如何让字幕文本显示在每个活动中。只需在一个地方写字,选框文字应该反映在每个活动中。怎么做...请帮助

2 个答案:

答案 0 :(得分:2)

简单。取一个全局字符串变量并相应地更改它并在所有活动中使用它。

答案 1 :(得分:2)

这是一种方法。 首先创建一个BaseActivity,它将被每个活动的选框相似的每个活动扩展。

public abstract class BaseWaalaMarquee extends Activity {
    FrameLayout flBaseActivity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_layout_marquee);
        appendView();
    }

    private void appendView() {
        flBaseActivity = (FrameLayout) findViewById(R.id.flBaseActivity);
        View mainView = getLayoutInflater().inflate(getLayout(), null);
        flBaseActivity.addView(mainView);
    }

    public abstract int getLayout();
}

为此活动创建一个名为base_layout_marquee的基本布局,如下所示

<?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">

    <TextView
        android:id="@+id/fact"
        android:layout_width="200dp"
        android:layout_height="40dip"
        android:duplicateParentState="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Loading... More text to see if it spans or not and want more">

        <requestFocus
            android:duplicateParentState="true"
            android:focusable="true"
            android:focusableInTouchMode="true" />
    </TextView>

    <FrameLayout
        android:id="@+id/flBaseActivity"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

现在为活动创建自己的布局,如下所示

<?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:background="#f00f0f"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your custom Layout" />
</LinearLayout>

最后创建扩展BaseWaalaMarquee的活动,如下所示

package ram.materialnavigation.opengltravis;

import ram.materialnavigation.R;

/**
 * Created by view9 on 12/16/15.
 */
public class ExtendedBaseActivity extends BaseWaalaMarquee {

    @Override
    public int getLayout() {
        return R.layout.your_custom_layout;
    }
}

现在调用ExtendedBaseActivity并查看结果。 我想这对你很有帮助。欢呼声