2013-06-11 3 views
2

3 개의 edittext 행을 동적으로 생성하고 그 값을 "재생"할 수 있도록 목록에 배치하는 앱이 있습니다. 예를 들어 첫 번째 줄의 가격은 단지 프리트 [0]입니다. 즉, 제품 이름, 수량 및 가격 필드가있는 쇼핑 목록입니다. 나는 사람들이 edittexts에 글을 쓰고있는 것을 알 수 있도록 실시간으로 총계를 계산할 수 있도록 텍스트가 변경 될 때 (텍스트 관찰자) 언제 감지하는지 이미 설정했지만, 마지막으로 타이핑 할 때를 알 수 없다. edittexts의 행.리스트 내에서 동적으로 생성 된 edittext의 마지막 행을 감지하십시오.

내가 원하는 것은 마지막 행이 클릭/집중/입력 된 텍스트가 produsnou()를 호출하고 자동으로 새로운 Edittext 행을 만들 때입니다. 내가 말했듯이, 내 문제는 그들이 입력하거나 클릭하거나 마지막 행에 집중할 때를 감지하는 방법을 모른다는 것입니다. 이것은 editexts의 새로운 행을 만드는 방법입니다.

public void produsnou() { 
    LinearLayout l1 = (LinearLayout) findViewById(R.id.layout1); 
    EditText et = new EditText(this); 
    et.setHint("Produs"); 
    l1.addView(et); 
    et.addTextChangedListener(this); 
    et.setId(997);  

    LinearLayout l2 = (LinearLayout) findViewById(R.id.layout2); 
    EditText et2 = new EditText(this); 
    et2.setHint("Cantitate"); 
    et2.setInputType(InputType.TYPE_CLASS_NUMBER 
      | InputType.TYPE_NUMBER_FLAG_DECIMAL); 
    et2.setId(998); 

    allcant.add(et2); 
    l2.addView(et2); 
    et2.addTextChangedListener(this); 

    LinearLayout l3 = (LinearLayout) findViewById(R.id.layout3); 
    EditText et3 = new EditText(this); 
    et3.setHint("Pret"); 
    et3.setInputType(InputType.TYPE_CLASS_NUMBER 
      | InputType.TYPE_NUMBER_FLAG_DECIMAL); 
    l3.addView(et3); 
    et3.setId(999); 
    allpret.add(et3); 
    et3.addTextChangedListener(this); 
} 

나는 이런 짓을 그리고 그것은 작동하지 않습니다 public void onFocusChange(View view, boolean hasFocus) { LinearLayout l3 = (LinearLayout) findViewById(R.id.layout3); if (hasFocus && l3.getChildAt(l3.getChildCount()) == view) { produsnou(); } }

답변

1

이를 달성하기 위해 OnFocusChangeListener를 사용할 수 있습니다.

public void onFocusChange(View view, boolean hasFocus) { 
    if (hasFocus && 
      linearLayout.getChildAt(linearLayout.getChildCount() - 1) == view) { 
     produsnou(); 
    } 
} 
+0

이상한 그것은 자동 edittexts의 다른 행을 추가하지 않습니다 작동하지 않습니다 : 뷰가이 같은 LinearLayout의 마지막 인 경우 수신기에서, 당신은 확인할 수 있습니다. –

+0

그래서'produsnou()'가 실행되지 않을까요? LinearLayout에서 마지막 요소로 다른 뷰가 있습니까? –

+0

아니, 아니야. 선형 레이아웃이 있는데, 그 안에 4 선형 레이아웃이있다. (제품의 첫 번째 열에 하나, 수량에 두 번째, 가격에 세 번째, 버튼과 textviews에 네 번째가있다. 무언가로 뷰를 대체 하시겠습니까? –

관련 문제