listview包含一个edittext列表。我想这样做,以便在更改列表视图“ myview:”的edittext中的文本时,单击按钮(使用功能“ CheckInputer()”)时,列表视图“ receipt”中的价格值发生变化。但是当我输入一个列表视图“ myview”的edittext中添加新值,然后按按钮,此新值未插入列表视图“ receipt”的价格中。我需要做些什么来解决此问题?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myView = (Listview) findViewById(R.id.my_view);
myButton = (Button) findViewById(R.id.my_button);
receipt = (Listview) findViewById(R.id.receipt);
totoalPriceText = (Textview) findViewById(R.id.totalPriceText);
// initialize as invisible (could also do in xml)
myView.setVisibility(View.INVISIBLE);
isUp = true;
itemsLayout = findViewById(R.id.itemsLayout);
baseHeight = 172;
WorkList workList = new WorkList("Демонтаж стяжки", "м.кв", "234", "10", "Демонтаж2");
WorkList workList1 = new WorkList("Демонтаж стяжки2", "м.кв", "6", "10", "Демонтаж2");
WorkList workList2 = new WorkList("Демонтаж стяжки3", "м.кв","7", "10", "Демонтаж4");
WorkList workList3 = new WorkList("Демонтаж стяжки4", "м.кв","96", "10", "Демонтаж3");
ListOfWork = new ArrayList<WorkList>();
ListOfWork.add(workList);
ListOfWork.add(workList1);
ListOfWork.add(workList2);
ListOfWork.add(workList3);
adapter = new WorkListAdapter(this, R.layout.adapter_view_layout, ListOfWork);
myView.setAdapter(adapter);
ListOfReceipt = new ArrayList<ReceiptList>();
context = getApplicationContext();
receiptListAdapter = new ReceiptListAdapter(context, R.layout.receiptlist_adapter, ListOfReceipt);
}
public void onSlideViewButtonClick(View view) {
if (isUp) {
Animation animSlideDown = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_down);
myView.startAnimation(animSlideDown);
myView.setVisibility(View.VISIBLE);
} else {
Animation animSlideUp = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_up);
myView.startAnimation(animSlideUp);
myView.setVisibility(View.INVISIBLE);
}
isUp = !isUp;
}
@SuppressLint("SetTextI18n")
public void CheckInputer(View view){
priceForText = 0;
ListOfReceipt.clear();
for (int i=0; i < ListOfWork.size(); i++) {
//Updating edittext value
EditText editTextCount = myView.getAdapter().getView(i, null, myView).findViewById(R.id.txtcount);
TextView tagsSpinnerItem = myView.getAdapter().getView(i, null, myView).findViewById(R.id.textView4);
final int finalI = i;
editTextCount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
ListOfWork.get(finalI).setCount(s.toString());
adapter.notifyDataSetChanged();
adapter = new WorkListAdapter(context, R.layout.adapter_view_layout, ListOfWork);
myView.setAdapter(adapter);
}
});
//Checking value of edittext
if(ListOfWork.get(i).getCount().trim().length() > 0){
//Adding objects to receipt listview0
float totalPrice = Float.parseFloat(ListOfWork.get(i).getCount()) * Float.parseFloat(ListOfWork.get(i).getPriceItem());
ListOfReceipt.add(new ReceiptList(ListOfWork.get(i).getName(), Float.toString(totalPrice) + "zł"));
receipt.setAdapter(receiptListAdapter);
//Total Price
priceForText += totalPrice;
totoalPriceText.setText(Float.toString(priceForText) + "zł");
}
}
int totalHeight1 = 0;//Check
int totalHeight2 = 0;
totalHeight1 = baseHeight * receipt.getCount();//Check
totalHeight2 = baseHeight * (myView.getCount() +1);
ViewGroup.LayoutParams params1 = receipt.getLayoutParams();//Check
ViewGroup.LayoutParams params2 = myView.getLayoutParams();
params1.height = totalHeight1;//Check
params2.height = totalHeight2;
receipt.setLayoutParams(params1);//Check
myView.setLayoutParams(params2);
}
}