public
class
MainActivity
extends
Activity {
private
LinearLayout mContainerView;
private
Button mAddButton;
private
View mExclusiveEmptyView;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.row_container);
mContainerView = (LinearLayout) findViewById(R.id.parentView);
mAddButton = (Button) findViewById(R.id.btnAddNewItem);
inflateEditRow(
"Xiaochao"
);
inflateEditRow(
"Yang"
);
}
public
void
onAddNewClicked(View v) {
inflateEditRow(
null
);
v.setVisibility(View.GONE);
}
public
void
onDeleteClicked(View v) {
mContainerView.removeView((View) v.getParent());
}
private
void
inflateEditRow(String name) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final
View rowView = inflater.inflate(R.layout.row,
null
);
final
ImageButton deleteButton = (ImageButton) rowView
.findViewById(R.id.buttonDelete);
final
EditText editText = (EditText) rowView
.findViewById(R.id.editText);
if
(name !=
null
&& !name.isEmpty()) {
editText.setText(name);
}
else
{
mExclusiveEmptyView = rowView;
deleteButton.setVisibility(View.INVISIBLE);
}
editText.addTextChangedListener(
new
TextWatcher() {
@Override
public
void
afterTextChanged(Editable s) {
if
(s.toString().isEmpty()) {
mAddButton.setVisibility(View.GONE);
deleteButton.setVisibility(View.INVISIBLE);
if
(mExclusiveEmptyView !=
null
&& mExclusiveEmptyView != rowView) {
mContainerView.removeView(mExclusiveEmptyView);
}
mExclusiveEmptyView = rowView;
}
else
{
if
(mExclusiveEmptyView == rowView) {
mExclusiveEmptyView =
null
;
}
mAddButton.setVisibility(View.VISIBLE);
deleteButton.setVisibility(View.VISIBLE);
}
}
@Override
public
void
beforeTextChanged(CharSequence s,
int
start,
int
count,
int
after) {
}
@Override
public
void
onTextChanged(CharSequence s,
int
start,
int
before,
int
count) {
}
});
mContainerView.addView(rowView, mContainerView.getChildCount() -
1
);
}
}