2013-04-28 2 views
5

DialogFragment에서 활동 A에서 TextView을 업데이트하는 방법은 무엇입니까?활동의 텍스트 뷰 부분에서 업데이트

public void setCountText(String text){ 
    CountItem = (TextView) findViewById(R.id.tv_numOfItem); 
    CountItem.setText(text); 
} 

온 클릭 버튼 DialogFragment에서 :

내 경우에는

DialogFragment에있는 닫기 버튼을 클릭, 난이 Activity에서 방법이다 TextView

변경할 수있는 방법을 호출 할 필요가

View.OnClickListener closeHandler = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 


     new menufeedActivity().setQountText(getCount); 


     InfoOrderDialog.this.dismiss(); 

    }; 

}; 

누구나 해결 방법을 알고 계십니까? 당신의 조각에서

04-29 03:08:17.513: E/AndroidRuntime(1738): FATAL EXCEPTION: main 
04-29 03:08:17.513: E/AndroidRuntime(1738): java.lang.NullPointerException 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.app.Activity.findViewById(Activity.java:1744) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at com.example.android.rssfeed.menufeedActivity.setQountText(menufeedActivity.java:169) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at com.example.android.rssfeed.InfoOrderDialog$2.onClick(InfoOrderDialog.java:110) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.view.View.performClick(View.java:3110) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.view.View$PerformClick.run(View.java:11928) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.os.Handler.handleCallback(Handler.java:587) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.os.Looper.loop(Looper.java:132) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at android.app.ActivityThread.main(ActivityThread.java:4025) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at java.lang.reflect.Method.invoke(Method.java:491) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
04-29 03:08:17.513: E/AndroidRuntime(1738):  at dalvik.system.NativeStart.main(Native Method) 

답변

15

당신은 다음과 같이 호출 할 수 있습니다

바꾸기 :

new menufeedActivity().setQountText(getCount); 

으로 :

((menufeedActivity) getActivity()).setCountText(getCount); 
0

는 : getActivity()에 startActivityForResult 전화 - 당신이 완료하기 전에 방법과 함께 조각을 호스팅하는 활동을 잡을 :.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

super.onActivityResult(requestCode, resultCode, data); 

//your method to update textview 
setCountText(); 

} 

편집 : 나는 당신을 위해 더 나은 솔루션을 발견 . 이 옵션을 선택합니다 : https://stackoverflow.com/a/15121529/2245646

6


그냥 이렇게.

TextView textview = (TextView)getActivity().findViewById(R.id.yourtextview); 
textview.setText("text"); 
관련 문제