gettext()在ExpandableListViewAdapter

时间:2018-02-09 18:47:35

标签: android expandablelistview gettext

我有一个ExpandableListViewAdapter,您可以在单击列表中的按钮时将项目添加到列表中。但是我无法得到这个文本,因为gettext()总是返回空。当我运行应用程序时,会创建新项目的新字段,但它什么也没说。这是适配器中的代码,一切都发生了。

@Override
    public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup viewGroup) {
        final TextView txtview = new TextView(context);
        edittxt = new EditText(context);
        final Button btn = new Button(context);

        if (children.get(groupPosition).get(childPosition).equals("new")) {
            edittxt.setText("Crear nuevo", TextView.BufferType.EDITABLE);
            edittxt.setPadding(100,0,0,0);
            edittxt.setBackgroundColor(Color.GRAY);
            edittxt.setTextSize(20);
            //edittxt.setHint("Crear Nuevo");


            return edittxt;
        }

        if (children.get(groupPosition).get(childPosition).equals("agregar")) {
            btn.setText("Agregar");
            btn.setPadding(100,0,0,0);
            btn.setBackgroundColor(Color.DKGRAY);
            btn.setTextSize(20);
           
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    final String nombreIngresado = edittxt.getText().toString();
                    //Log.v("que hay en el edittxt", edittxt.getText().toString());
                    children.get(groupPosition).add(0,nombreIngresado);
                    notifyDataSetChanged();
                }
            });
            return btn;

        }
        else {
        txtview.setText(children.get(groupPosition).get(childPosition));
        txtview.setPadding(100,0,0,0);
        txtview.setTextColor(Color.RED);
        txtview.setTextSize(20);

        txtview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context, txtview.getText().toString(), Toast.LENGTH_SHORT).show();
            }
        });
        return txtview;}
    }

谢谢你,Angi

1 个答案:

答案 0 :(得分:0)

解决了它:)

我把这一行:" edittxt = new EditText(context);"内部de first if-block。旧的代码创建了很多EditTexts,也就是在不需要的时候。 它现在看起来像这样:

@Override
public View getChildView(final int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup viewGroup) {
    final TextView txtview = new TextView(context);
    edittxt = new EditText(context);
    final Button btn = new Button(context);

    if (children.get(groupPosition).get(childPosition).equals("new")) {
        edittxt.setText("Crear nuevo", TextView.BufferType.EDITABLE);
        edittxt.setPadding(100,0,0,0);
        edittxt.setBackgroundColor(Color.GRAY);
        edittxt.setTextSize(20);
        //edittxt.setHint("Crear Nuevo");


        return edittxt;
    }

谢谢。