我有这个奇怪的问题(最后对我来说)。我是一个新的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>