swayam swayam
swayam swayam

Reputation: 131

How to show a marquee text in every activity

How to let marquee text to show in every activity. Just write at one place and the marquee text should be reflect in every activity. How to do this..please help

Upvotes: 2

Views: 455

Answers (2)

Ram Mandal
Ram Mandal

Reputation: 1959

here is one way to do that. first create a BaseActivity that will be extended by every activity whose marquee is similar for every activity.

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

create a base layout for this activity named base_layout_marquee as below

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

now create your own layout for the activity like below

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

finally create you activity that extends BaseWaalaMarquee as below

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

Now invoke ExtendedBaseActivity and see the result. I guess this will be quite helpful for you. cheers

Upvotes: 2

JIGAR
JIGAR

Reputation: 302

Simple..Take a global string variable and change it accordingly and use it in all the activities.

Upvotes: 2

Related Questions