NavigationDrawerAdapter

NavigationDrawerAdapter

我试图在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()调用将重绘“抽屉布局”。

09-10 15:36