Android从主活动类中的非类布局访问Textview

时间:2017-12-22 08:43:20

标签: android android-viewpager

我创建了一个viewpager滑动视图,没有使用片段。根据滑动获取位置和布局显示。实际上这是一个日历应用程序。我已经获得应用程序启动时的当前日期,我想根据该日期更改文本视图。问题是,当我访问下面的非类布局并更改textview时,它需要更改。

Calendar cal = Calendar.getInstance();
int dd = cal.get(Calendar.DAY_OF_MONTH);
int mm = cal.get(Calendar.MONTH);
++mm;
int yy = cal.get(Calendar.YEAR);
String today = String.valueOf(dd);

final View vi = inflater.inflate(R.layout.december, null);
t1 = (TextView)vi.findViewById(R.id.do4);
t1.setText("today");

1 个答案:

答案 0 :(得分:0)

您的活动有一个要更改的TextView。 首先,我会在Activity中更改textview,比如说,

public void setDate(Date date) {
   dateView.setText(formatDateSomehow(date));
}

然后,如果你想在Activity开始后立即设置正确的日期,我会从Activity' s onCreate()

中调用此方法
public void onCreate(Bundle savedState) {
   super.onCreate(savedState);
   setDate(new Date());
}

然后,如果您想从活动外部设置日期(并且您甚至不知道您的活动是否显示),您可以使用 LocalBroadcast与此类似:https://androidcookbook.com/Recipe.seam?recipeId=4547

或者你可以使用像这样的EventBus:http://square.github.io/otto/

或者您可以使用LiveData https://developer.android.com/topic/libraries/architecture/livedata.html