2014-11-18 3 views
0

내 NavigationDrawerAdapter에 정의 된 TextView에서 Parse.com의 데이터를 재설정하려고합니다. 그렇게하는 가장 쉬운 방법은 내 MainActivity의 onDrawerOpened에서 그렇게하는 것이고 사용자가 로그인 또는 로그 아웃 할 수 있도록 매번 확인하는 것이라고 가정합니다. 문제는 텍스트가 설정되지 않았기 때문입니다. 그래서 같은 NavigationDrawerAdapter의의 getView()에 위치한 년대 MainActivity에서 레이아웃을 호출하려고 해요 :onDrawerOpened 탐색 창고 및 설정 textView on 탐색 드로어

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를 설정할 수 없습니까? 그렇다면 어떻게 수행 할 수 있습니까? invalidate() 호출이 서랍 레이아웃을 다시 그린다

Drawer mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 

runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     //Update Text View Here. 
     mDrawerLayout.invalidate(); 
    } 
}); 

당신은 사용해야합니다

+0

텍스트를 수신했는지 여부에 관계없이 "완료"기능을 선택 했습니까? –

+0

예 로그 문을 추가하고 로그인했는지 여부에 따라 매번 텍스트를 올바르게 반환합니다. 업데이트되지 않습니다. View convertView 행에 null을 뷰 루트로 전달하지 않도록 경고하는 경고가 표시됩니다. – Joey

답변

1

.

+0

미안하지만, 나는 새롭다. 어디로 갈까? – Joey

+0

textview를 업데이트하려면 settext()를 사용하고 invalidate()를 호출하십시오. –

+0

당신이해야 할 일은 어떤 클래스 변수에서 textView의 텍스트를 설정하는 것입니다. 이제 텍스트를 업데이트하려면 해당 변수의 값을 변경 한 다음 invalidate() 메서드를 호출합니다. 그러면 드로어가 다시 그려지며 새 값이 업데이트 된 변수에서 가져옵니다. –