Xml 扩展时基本活动中的TextView未刷新
我(终于)遇到了这个棘手的问题。我是一名新的android开发者,请原谅我的无知 以下是描述: 我有两个活动:活动A和活动B 活动A是由其他活动扩展的主要活动。它包含公共布局,例如公共页眉和页脚。在标题中有一个TextView对象,它应该显示日期和时间。还有一个计时器,它每1秒刷新一次,并在Textview对象中显示日期和时间。如果我自己运行ActivityA,它就会工作 ActivityB扩展ActivityA。ActivityB还使用INCLUDE XML指令重用ActivityA的布局。到目前为止,布局在设计时和运行时都被重用,我可以看到重用的布局和文本视图 现在的问题是: 当我启动ActivityB(扩展ActivityA并包含其布局)时,activity会显示在emulator屏幕上,但应该显示日期和时间的TextView不会刷新,即使计时器在ActivityA中工作并设置数据(我可以在调试器中观察)。它只是不传播对ActivityB布局的更改。这样行吗 我想要达到的目标: 我想有一个共同的活动。其他活动将重用它的布局并扩展它。我想要在公共活动中工作的代码更改扩展它的所有活动中的对象。例如,我希望在扩展公共活动的布局和代码的每个活动上显示日期和时间。我希望我说得够清楚了 代码如下:Xml 扩展时基本活动中的TextView未刷新,xml,include,Xml,Include,我(终于)遇到了这个棘手的问题。我是一名新的android开发者,请原谅我的无知 以下是描述: 我有两个活动:活动A和活动B 活动A是由其他活动扩展的主要活动。它包含公共布局,例如公共页眉和页脚。在标题中有一个TextView对象,它应该显示日期和时间。还有一个计时器,它每1秒刷新一次,并在Textview对象中显示日期和时间。如果我自己运行ActivityA,它就会工作 ActivityB扩展ActivityA。ActivityB还使用INCLUDE XML指令重用ActivityA的布局。到
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>
公共类活动a扩展了AppCompatActivity{
公共文本查看时间文本;
公共文本查看日期文本;
公共文本视图prijavljenText;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.base_活动);
timeText=(TextView)findViewById(R.id.txtTime);
dateText=(TextView)findViewById(R.id.txtDate);
定时器=新定时器();
timer.schedule(新TimerTask(){
@凌驾
公开募捐{
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
计时器_经过();
}
});
}
},0,1000);
按钮btn=(按钮)findViewById(R.id.btnClose);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
完成();
}
});
}
公共无效计时器_已用(){
日期d=新日期();
字符串时间=新的SimpleDataFormat(“HH:mm:ss”)。格式(d);
字符串日期=新的SimpleDataFormat(“dd.MM.yyyy”)。格式(d);
dateText.setText(日期);
timeText.setText(时间);
}
}
公共类ActivityB扩展ActivityA{
公共活动amybase=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
});
}
}
下面是ActivityBXML布局