2012-02-18 3 views
0

대화 상자 레이아웃에서 사용자 선택에 따라 프로그래밍 방식으로 두 번째 EditText를 만듭니다. 입력을 반환하려면 두 번째 EditText가 만들어 졌는지 여부를 알아야합니다. 그리고 나는이 수표를 만드는 방법을 이해하지 못합니다. 내 문장 if (edittextTwo! = null)는 두 번째 EditText가 표시되고 텍스트를 입력 한 경우에도 항상 null입니다. (! edittextTwo = NULL)EditText가 생성되었는지 확인하는 방법은 무엇입니까?

private void displayASecondEdittext(String title) { 
    ViewGroup layout = (ViewGroup) findViewById(R.id.layout_editdialog); 
    TextView titleTwo = new TextView(this); 
    titleTwo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    titleTwo.setText(title); 
    layout.addView(titleTwo); 

    EditText edittextTwo = new EditText(this); 
    edittextTwo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    layout.addView(edittextTwo); 
}//END displayASecondInputfield 


private void returnResult() { 
    Intent resultIntent = new Intent(this, EditDialog.class); 
    resultIntent.putExtra(EDITONE, edittextOne.getText().toString()); 
    if (edittextTwo != null) { 
     resultIntent.putExtra(EDITTWO, edittextTwo.getText().toString()); 
     Log.v(TAG, "edittextTwo ="+edittextTwo.getText().toString()); 
    } 
    setResult(Activity.RESULT_OK, resultIntent); 
    finish(); 
}//END returnResult 

답변

1

EditText edittextTwo; 외부로 이동하십시오. 여기에 넣어 : 다음

public class myActivity extends Activity 
    EditText edittextTwo = null; 

과를, 당신의 DisplayASecondEditText()에, 대신 당신은 무엇 이렇게 :

edittextTwo = new EditText(this); 

이것은 당신의 선언은 글로벌하게, 모든 모든 방법이 변수에 액세스 할 수 있습니다.

+0

아, 네. 범위는 초보자에게는 까다 롭습니다. 감사! – Tombola

1

내가 edittextTwo 이후, 심지어 위의 코드를 컴파일하는 방법을 이해하지 않는 경우

: 여기

는 입력을 두 번째의 EditText를 작성하고 반환 방법입니다 displayASecondEdittext의 지역 변수입니다. 귀하의 활동에 회원 변수로 만드십시오. 그러면 효과가 있습니다.

관련 문제