我有一个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
答案 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;
}
谢谢。