可扩展列表Android中的onClick子列表

时间:2014-03-31 03:58:21

标签: android onclick expandablelistview

我正在使用expandableList,每个孩子都有自己的edittext来输入一个数字...当按下孩子时,edittext会显示。如果不是,则编辑文本保持不可见..问题是当我按下孩子" A",其他一些孩子(例如孩子" L"和" Z&#34 ;)还显示edittext ...这是我在主要活动中的代码:

  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,因为我不再使用了它...当我点击时,我通过敬酒孩子和小组位置做了一个简单的研究......你知道什么......孩子和小组的位置每次我向上或向下滚动时随机改变 希望有人帮助:)非常感谢..

1 个答案:

答案 0 :(得分:0)

很抱歉,如果我的回答是愚蠢的:快速查看您的程序会显示您使用==!=来表示Java String。据我所知,这不适用于Java 6。 Java 7?

请考虑使用string1.equals(string2),这可能有所帮助。