2017-01-18 1 views
-1

편집 텍스트보기에서 사용자가 작성한 텍스트를 가져 와서 String 값에 저장하려고합니다. 그런 다음 두 String 객체가 포함 된 클래스에서이 String 값을 설정하려고합니다. 나는 "WrittenSubj"와 "WrittenDeta"가 null과 같기 때문에 널 포인터 예외를 가진 에러를주는 코드를 실행한다. 어떻게이 문제를 해결할 수 있을까?EditText에서 문자열 가져 오기

public class TaskDetails extends AppCompatActivity { 
EditText WrittenSubj; 
EditText WrittenDeta; 
Button SaveBut; 
TheTask theTask; 
private Database database; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_task_details); 
    WrittenSubj=(EditText)findViewById(R.id.thesubject); 
    WrittenDeta=(EditText)findViewById(R.id.theDetails); 
    SaveBut=(Button)findViewById(R.id.SaveButton); 

    String subj=WrittenSubj.getText().toString(); 
    String deta=WrittenDeta.getText().toString(); 
    theTask.setSubject(subj); 
    theTask.setDetails(deta); 

} 
+0

너무 오래된 질문입니다. –

+0

'TheTask'는 무엇입니까 –

+0

은 "theTask"변수를 초기화하지 않았습니다. –

답변

1

나는 TheTask가 Beam 클래스라고 생각하고 초기화하지 않았습니다.

초기화하십시오.

theTask = new TheTask(); 

과 같은 것을 사용하기 전에 당신은 TheTask 클래스를 초기화해야

theTask.setSubject(subj); 
theTask.setDetails(deta); 
+0

감사합니다! 그것은 내 쾌감을 –

+0

.. 일했습니다 :) –

1

사용

TheTask theTask = new TheTask(); 

아래 그리고 아래

theTask.setSubject(subj); 
theTask.setDetails(deta); 
0
같은 theTask의 사용 객체 후

문제는 arris입니다. 왜냐하면 당신이 편집 문을 초기화하고 그 텍스트를 가져 오기 때문에 onCreate()OnCreate()의 메소드가 활동이 생성 될 때 호출되는 메소드이기 때문에 활동을 생성 할 때 편집 텍스트는 분명히 null/empty 값을 가질 것입니다. 따라서 이벤트가 발생하면 클릭 edittext.getText()으로 전화해야합니다. 실제로는 텍스트가 입력 된 후에 클릭하십시오.