我试图在NavigationDrawerAdapter中定义的TextView上从Parse.com重置数据。我认为最简单的方法是在MainActivity的onDrawerOpened中执行此操作,以便它每次都进行检查以确保用户已登录或注销。问题是文本未设置。我试图从位于NavigationDrawerAdapter的getView()中的MainActivity调用布局,如下所示:
public void onDrawerOpened(View drawerView)
{
super.onDrawerOpened(drawerView);
ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseUser>() {
@Override
public void done(ParseUser user, ParseException arg1) {
LayoutInflater mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView = mInflater.inflate(R.layout.navigation_drawer_list_object, null);
TextView username = (TextView) convertView.findViewById(R.id.txtvDrawerFirstItemText1);
username.setText(user.getUsername());
}
});
getActionBar().setTitle(mDrawerTitle);
}
有什么想法为什么这行不通吗?我能否从MainActivity中设置位于NavigationDrawerAdapters getView中的TextView,如果不能,那么如何实现呢?
最佳答案
您需要使用,
Drawer mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
runOnUiThread(new Runnable() {
@Override
public void run() {
//Update Text View Here.
mDrawerLayout.invalidate();
}
});
invalidate()
调用将重绘“抽屉布局”。