Android可扩展列表视图获取选定组子视图
我想问一下如何从可展开列表视图中的特定组中获取子视图 我尝试过使用getChildAt(1),但它总是返回子视图1(从组视图1)(蓝线和文本),当我尝试使用getChildAt(2)时,它会错误地将视图指向空引用。如何创建一个能够检测其组2并获取其子视图的循环?我希望你能理解我的问题 目前,我只能使用getChildAt(1)获取group 1子视图。我想取而代之的是第2组的子视图。我将执行一个for循环,它将循环所有组并相应地更新其子视图 提前谢谢 这是我的适配器获取子视图:Android可扩展列表视图获取选定组子视图,android,android-studio,android-edittext,decimalformat,Android,Android Studio,Android Edittext,Decimalformat,我想问一下如何从可展开列表视图中的特定组中获取子视图 我尝试过使用getChildAt(1),但它总是返回子视图1(从组视图1)(蓝线和文本),当我尝试使用getChildAt(2)时,它会错误地将视图指向空引用。如何创建一个能够检测其组2并获取其子视图的循环?我希望你能理解我的问题 目前,我只能使用getChildAt(1)获取group 1子视图。我想取而代之的是第2组的子视图。我将执行一个for循环,它将循环所有组并相应地更新其子视图 提前谢谢 这是我的适配器获取子视图: @Ov
@Override
public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.personal_loan_list_item, null);
final CustomEditText installmentText = (CustomEditText) convertView.findViewById(R.id.installmentET);
installmentText.setTag("amount");
installmentText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
try {
installmentText.removeTextChangedListener(this);
formatText(installmentText, groupPosition);
installmentText.addTextChangedListener(this);
} catch (Exception ex) {
ex.printStackTrace();
installmentText.addTextChangedListener(this);
}
}
});
return convertView;
}
formattext方法,用于在密钥输入会话期间仅格式化文本,如5000自动更改为5000转换为货币值
在我的活动中,我使用了:
listView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
for(int count = 1; count < people.getLoan().size(); count++) {
if(hasFocus) {
if (count != lastGroupPos) {
View view = listView.getChildAt(1);
CustomEditText editTxt = (CustomEditText) view.findViewById(R.id.installmentET);
String toSplit = FormatConverterUtil.formatString(editTxt);
people.getLoan().get(count - 1).setAmount(toSplit.replace(",", ""));
}
}
}
}
});
listView.setOnFocusChangeListener(新视图.OnFocusChangeListener(){
@凌驾
public void onFocusChange(视图v,布尔hasFocus){
对于(int count=1;count
您是否尝试过child和group click listener?发布您的适配器代码&从哪里获取子视图child click listener对我不起作用,单击child时不会执行它。假设我在子视图上编辑了文本,在我编辑完组1“编辑文本”中的文本并直接单击组2“编辑文本”后,我希望组1“编辑文本”自动设置其文本的格式(我正在执行货币操作),如果我单击外部或任何视图,它都可以正常工作,但当我单击其他组“编辑文本”视图时,它不会自动设置格式,这就是为什么我需要循环所有组并获取其子视图并手动设置其格式我有一个变量,该变量保持当前组的单击位置,以便特定的组子视图不会被设置格式。添加了适配器get child view类,但我主要关心的是图2,当我在任何编辑文本区域外单击时,“自动格式化”效果很好,就在我单击其他编辑文本时,它不会自动格式化,因此我可以手动循环所有组子视图,并检查最后一个组位置(以便该编辑文本将自动格式化),而其余部分将得到更新