扩展

时间:2015-12-23 06:43:27

标签: xml include

我有这个奇怪的问题(最后对我来说)。我是一个新的Android开发人员,请原谅我的无知。

以下是描述:

我有两个活动:ActivityA和ActivityB

ActivityA是其他活动要扩展的主要活动。它包含常见的布局,例如公共页眉和页脚。在标题中有TextView对象,它应该显示日期和时间。还有一个计时器每1秒刷新一次,并在Textview对象中显示日期和时间。如果我自己运行ActivityA,它就可以工作。

ActivityB扩展了ActivityA。 ActivityB还使用INCLUDE XML指令重用ActivityA的布局。到目前为止,布局在设计时和运行时都重复使用,我可以看到重用的布局和TextView。

现在出现问题:

当我启动ActivityB(扩展ActivityA并包含它的布局)时,活动显示在模拟器屏幕上,但是应该显示日期和时间的TextView不会刷新,即使计时器在ActivityA中工作并设置数据(我可以观察)它在调试器中)。它只是不将更改传播到ActivityB的布局。它应该以这种方式工作吗?

我想要实现的目标:

我想要一个共同的活动。其他活动将重用它的布局并扩展它。我希望在公共活动中工作的代码更改扩展它的所有活动中的对象。例如,我希望在每个活动上显示日期和时间,以扩展公共活动的布局和代码。我希望我很清楚。

以下是代码:

    public class ActivityA extends AppCompatActivity {

    public TextView timeText;
    public TextView dateText;
    public TextView prijavljenText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_activity);

        timeText =(TextView) findViewById(R.id.txtTime);
        dateText =(TextView) findViewById(R.id.txtDate);


        Timer timer = new Timer();
        timer.schedule( new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Timer_Elapsed();
                    }
                });
            }
        },0,1000);


        Button btn = (Button) findViewById(R.id.btnClose);


        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                finish();
            }
        });

    }
    public void Timer_Elapsed(){

        Date d=new Date();

        String time= new SimpleDateFormat("HH:mm:ss").format(d);
        String date= new SimpleDateFormat("dd.MM.yyyy").format(d);
        dateText.setText(date);
        timeText.setText(time);

    }  
}

public class ActivityB extends ActivityA{

    public ActivityAmyBase=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);

        });



    }


}

Here's ActivityB XML layout

<RelativeLayout 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"
    tools:context=".ArhivRacunaActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Logiran"
        android:id="@+id/btnSetLog"
        android:layout_marginBottom="183dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

    <include layout="@layout/activity_a"
        />
</RelativeLayout>

0 个答案:

没有答案
相关问题