在主類中,我有一個ListView和一個EditText。 ListView使用自定義的BaseAdapter幷包含將在每行顯示的多個項目。 我想使用像TextWatcher,這將允許我在EditText中輸入一些數字,並且該輸入將顯示在ListView的其中一項中。EditText使用TextWatcher更新ListView上的項目
請參閱下面的代碼的一些部分,以解釋更好的我的問題。
主類:
...
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類別:
...
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;
}
我的目標是對的EditText輸入一些數字(例如100),這個數字將通過tvSecond
的值相乘,然後在tvThird
中顯示最終值。
您的幫助將不勝感激。
你好@Sahith,感謝您的參與以上,這就是我一直在尋找。 但是,我碰到了更多的挑戰。 讓我把它作爲下面的答案發布。 –