gpt4 book ai didi

java - 检测列表中动态创建的编辑文本中的最后一行

转载 作者:行者123 更新时间:2023-11-30 11:31:41 24 4
gpt4 key购买 nike

我有一个应用程序可以动态创建一行 3 个 edittexts 并将它们放在一个列表中,这样我就可以“玩”它们的值。例如,如果我想在第一行调用价格,我只是做 pret[ 0]。简而言之,它是一种带有产品名称、数量和价格字段的购物 list 。我已经将它设置为检测文本何时被更改(文本观察器)以便它实时计算总数所以我知道人们何时在编辑文本上书写但我不知道他们何时输入最后一个一行编辑文本。

我现在想要的是:当最后一行被单击/聚焦/在其中输入文本时调用 produsnou() 并自动创建新的 Edittexts 行。正如我所说,我的问题是我不知道如何检测他们何时在键入、单击或关注最后一行。这是我创建新的编辑文本行的方式。

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);
如果(有焦点 &&
l3.getChildAt(l3.getChildCount())== View ){
产品();
}
}

最佳答案

您可以使用 OnFocusChangeListener 来实现这一点。在监听器中,您可以像这样找出 LinearLayout 中的最后一个 View :

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

关于java - 检测列表中动态创建的编辑文本中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com