2012-01-23 6 views
1

두 조각이 있습니다. 단편 A와 단편 B. 단편 A에는 EmpID라는 EditText보기가 있습니다. 단편 B에는 '제출'버튼이 있습니다. 나는 조각 B에서 전송 버튼을 클릭하면, 나는 버튼의 OnClickListener를에, 나는 다음과 같은 코드를 사용하여이 작업을 수행하려고 해요 조각 A에다는 EmpID에 입력 된 값을 검색하고 싶습니다 :다른 조각에서 EditText 값 가져 오기

EditText empID = (EditText) getView().findViewById(R.id.EmpID); 
    String empIDStr = empID.getText().toString(); //I get null here 

하지만를 데이터를 입력 한 경우에도 계속해서 null 값을 유지합니다. 다른 단편에서 EditText보기의 가치를 얻을 수 없습니까? 나는 여기서 뭔가를 놓치고 있다고 확신한다. 어떤 도움을 주시면 감사하겠습니다. 감사.

Here's the logcat output: 
01-23 12:32:13.883: E/AndroidRuntime(1171): FATAL EXCEPTION: main 
01-23 12:32:13.883: E/AndroidRuntime(1171): java.lang.NullPointerException 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at ex.testApp.FragmentB$1.onClick(FragmentB.java:85) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.view.View.performClick(View.java:3110) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.view.View$PerformClick.run(View.java:11928) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.os.Handler.handleCallback(Handler.java:587) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.os.Looper.loop(Looper.java:132) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at android.app.ActivityThread.main(ActivityThread.java:4025) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at java.lang.reflect.Method.invoke(Method.java:491) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
01-23 12:32:13.883: E/AndroidRuntime(1171):  at dalvik.system.NativeStart.main(Native Method) 

여기 FragmentB.java입니다 :

public class FragmentB extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.FragmentB, container, false); 
} 

@Override 
public void onStart() { 
    super.onStart(); 
    final Button btnLeft = (Button) getActivity().findViewById(R.id.btnLeft); 
    final Button btnRight = (Button) getActivity().findViewById(R.id.btnRight); 
    buttonClick(btnLeft, btnRight); 
} 

private void buttonClick(final Button btnLeft, final Button btnRight) { 
    btnLeft.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

     if (btnLeft.getText().equals("Submit")) { 
     EditText empID = (EditText) getView().findViewById(R.id.EmpID); 
     String empIDStr = empID.getText().toString(); //I get null here 
..... 
+0

logcat을 사용하면 더 많은 도움이됩니다. – prolink007

+0

FragmentB.java도 볼 수 있습니까? – prolink007

+1

은 getActivity()입니다. 의 getView()가 아님 EditText empID = (EditText) getActivity(). findViewById (R.id.EmpID); 시간 내 주셔서 감사합니다. – user1005585

답변

1

난 그냥 정적에 대한 변수를 설정하고 일했다.

private static EditText empID; 
+0

신의 사랑을 위해 정적 인 대상으로보기를 사용하지 마십시오. –