的onClick的childList上ExpandableList的Android
我使用expandableList,每个孩子都有的EditText输入一个数字......当孩子pressed的EditText上表演。如果不是,则停留的EditText invisible..the问题是,当我pressed子A,其他一些孩子的(例如子L和Z)也表现出的EditText ...这里是我的code的主要活动:
i am using expandableList and each child has its edittext to enter a number... when the child is pressed, the edittext shows. if it is not, the edittext stays invisible..the problem is when i pressed child "A", some other childs (for example child "L" and "Z") also show the edittext... here is my code in main activity :
protected void onCreate(Bundle konsumsi) {
super.onCreate(konsumsi);
setContentView(R.layout.konsumsi_user);
exKonsumsi = (ExpandableListView) findViewById(R.id.EVkonsumsi_user);
exKonsumsi.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
prepareListDataKonsumsi();
exKonsumsiAdapter = new com.ta.helper.ExpandableListAdapterKonsumsi(
this, listDataHeaderKonsumsiUser, listDataChildKonsumsiUser);
exKonsumsi.setAdapter(exKonsumsiAdapter);
kolomTakaran = (TextView) findViewById(R.id.takaran);
takaran = ExpandableListAdapterKonsumsi.takaran;
kolomTakaran.setText("" + takaran);
exKonsumsi.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
EditText kolomEditTakaran = (EditText) v
.findViewById(R.id.kolomTakaran);
CheckedTextView listChild = (CheckedTextView) v
.findViewById(R.id.lblListItemKonsumsi);
/* for (int i = 0; i < listDataHeaderKonsumsiUser.size(); i++) {
if (listDataHeaderKonsumsiUser.get(groupPosition) == listDataHeaderKonsumsiUser
.get(i)) {
int a = listDataChildKonsumsiUser.get(
listDataHeaderKonsumsiUser.get(i)).size();
for (int j = 0; j < a; j++) {
if (listChild.getText().toString() == listDataChildKonsumsiUser
.get(listDataHeaderKonsumsiUser.get(i))
.get(j)) {
kolomEditTakaran.setVisibility(v.VISIBLE);
}else{
kolomEditTakaran.setVisibility(v.INVISIBLE);
}
}
}
}*/
return true;
}
});
}
private void prepareListDataKonsumsi() {
listDataHeaderKonsumsiUser = new ArrayList<String>();
listDataChildKonsumsiUser = new HashMap<String, List<String>>();
Collections.addAll(listDataHeaderKonsumsiUser, getResources()
.getStringArray(R.array.header_konsumsi_user));
List<String> daftarMakananTersimpan = new ArrayList<String>();
List<String> daftarMakanan = new ArrayList<String>();
Collections.addAll(
daftarMakanan,
getResources().getStringArray(
R.array.child_konsumsi_user_daftar_makanan));
Collections.addAll(
daftarMakananTersimpan,
getResources().getStringArray(
R.array.child_konsumsi_user_daftar_makanan_tersimpan));
listDataChildKonsumsiUser.put(listDataHeaderKonsumsiUser.get(0),
daftarMakananTersimpan);
listDataChildKonsumsiUser.put(listDataHeaderKonsumsiUser.get(1),
daftarMakanan);
}
}
和我删除了我expandableadapter因为我不使用它了......我被敬酒的儿童和集团的立场做了一个简单的研究,当我点击......你知道......孩子和组位置随机变化每次我滚动或上下
希望有人帮助:)非常感谢..
and I deleted my expandableadapter because i'm not using it anymore... i made a simple research by toasting the child and group position when i clicked... you know what... the child and group position randomly change everytime i scrolled up or down hope somebody help :) thanks a lot..
很抱歉,如果我的回答是愚蠢的:在你的程序中快速查找表明您使用 ==
和!=
用于Java的字符串。这是不应该使用Java 6的工作,据我所知。 Java 7的?
Sorry if my answer is stupid: a quick look on your program shows that you use ==
and !=
for Java String. This is not supposed to work with Java 6, as far as I know. Java 7 ?
考虑使用 string1.equals(字符串2)
来代替,这可能会有帮助。
Consider using string1.equals(string2)
instead, this may help.