In der Hauptklasse habe ich einen ListView und einen EditText. Die ListView verwendet einen benutzerdefinierten BaseAdapter und enthält mehrere Elemente, die pro Zeile angezeigt werden. Ich möchte wie ein TextWatcher verwenden, mit dem ich eine Nummer in den EditText eingeben kann und diese Eingabe wird unter einem der Elemente der ListView angezeigt.EditText aktualisiert Elemente in ListView mit TextWatcher
Bitte unten einige Teile meiner Codes sehen, um meine Frage besser zu erklären.
Hauptklasse:
...
etAmount = (EditText) findViewById(R.id.edt_text);
lvDisplay = (ListView) findViewById(R.id.listView_display);
...
CustomAdapter adapter = new CustomAdapter(this, menuList, new CustomAdapter.onDoneClick() {
@Override
public void onClick(View v, int position) {}
});
lvDisplay.setAdapter(adapter);
...
CustomAdapter Klasse:
...
public CustomAdapter(Context context, List<MenuModel> objects, onDoneClick listener) {
this.context = context;
this.menuList = objects;
this.mListener = listener;
}
public interface onDoneClick{
void onClick(View v, int position);
}
@Override
public int getCount() {
return menuList.size();
}
@Override
public Object getItem(int position) {
return menuList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
View view = convertView;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.item_layout, parent, false);
holder.tvFirst = (TextView) view.findViewById(R.id.item1);
holder.tvSecond = (TextView) view.findViewById(R.id.item2);
holder.tvThird = (TextView) view.findViewById(R.id.item3);
} else {
holder = (ViewHolder) view.getTag();
}
final MenuModel item = menuList.get(position);
if (item != null) {
holder.tvFirst.setText(item.getName());
holder.tvSecond.setText(item.getRate());
}
return view;
}
static class ViewHolder {
TextView tvFirst;
TextView tvSecond;
TextView tvThird;
}
Mein Ziel ist es, einige Zahlen auf der EditText (zB 100) eingeben, die Nummer wird durch den Wert der tvSecond
multipliziert werden, Zeigen Sie dann den endgültigen Wert in tvThird
an.
Ihre Hilfe wird sehr geschätzt.
Hallo @Sahith, danke für Sie Eingang oben, es ist das, was ich suchte. Ich stieß jedoch auf weitere Herausforderungen. Lassen Sie mich es als Antwort unten posten. –