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(); } }
이상한 그것은 자동 edittexts의 다른 행을 추가하지 않습니다 작동하지 않습니다 : 뷰가이 같은
LinearLayout
의 마지막 인 경우 수신기에서, 당신은 확인할 수 있습니다. –그래서'produsnou()'가 실행되지 않을까요? LinearLayout에서 마지막 요소로 다른 뷰가 있습니까? –
아니, 아니야. 선형 레이아웃이 있는데, 그 안에 4 선형 레이아웃이있다. (제품의 첫 번째 열에 하나, 수량에 두 번째, 가격에 세 번째, 버튼과 textviews에 네 번째가있다. 무언가로 뷰를 대체 하시겠습니까? –