В том же макете действий у меня есть поле TextView и ListView с кнопкой на каждом из элементов. В моем адаптере массива ListView у меня есть метод прослушивания кнопки внутри метода getView(), где я пытаюсь «динамически» обновлять значение поля TextView, упомянутого выше.Как я могу динамически обновлять поле TextView из кнопки ListView?
До сих пор я смог обновить значение TextView с помощью надутого экземпляра, но я могу видеть только обновленный TextView, когда обновляю страницу, пересматривая страницу активности из главного меню.
Как последнее разрешение, я установил его, чтобы перезапустить страницу активности внутри слушателя бутона внутри метода getView(), не выполняя его вручную. Это не лучший способ, так как пользователь может видеть, как страница перезагружается каждый раз, когда он нажимает кнопку «Элемент списка».
Не могли бы вы дать мне знать, как я могу динамически обновлять значение?
Ниже мой адаптер код класса:
public adapter(Context context, int resource, ArrayList<value> objects)
{
super(context, resource, objects);
layout = resource;
array = objects;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent)
{
box = null;
db = new database(getContext());
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(layout, null);
box = new holder();
box.X = (TextView) convertView.findViewById(R.id.valueName);
box.Y = (TextView) convertView.findViewById(R.id.valueNumber);
box.button = (Button) convertView.findViewById(R.id.itemDeleteButton);
box.button.setTag(position);
convertView.setTag(box);
}
else
{
box = (holder) convertView.getTag();
}
box.X.setText(getItem(position).getX());
box.Y.setText(String.valueOf(getItem(position).getY()));
box.button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
View view = View.inflate(getContext(), R.layout.activity_plan, null);
list = (ListView) view.findViewById(R.id.listView);
month = (Spinner) view.findViewById(R.id.inputSpinner);
remainder = (TextView) view.findViewById(R.id.outputRemainder);
adapt = new adapter(getContext(), R.layout.activity_item, array);
array.remove(position);
month_is = month.getSelectedItem().toString();
db.removePlanData(month_is, position + 1);
notifyDataSetChanged();
cursor = db.getHelpDataRows(month_is);
cursor.moveToFirst();
val_is = Integer.parseInt(cursor.getString(cursor.getColumnIndex("value")));
remainder_is = val_is - db.getCurrent(month_is);
remainder.setText(String.valueOf(remainder_is));
// RESTARTING ACTIVITY TO SEE THE UPDATED TEXTVIEW VALUE OUTSIDE LISTVIEW.
Intent intent= new Intent(getContext(), plan.class);
getContext().startActivity(intent);
}
});
return convertView;
}
public class holder
{
TextView X;
TextView Y;
Button button;
}
Было бы полезно, если бы вы могли бы показать код –
показать код. – Chisko
Спасибо за ваши ответы. Я разместил свой код ниже. Извините за задержку с ответом. Я ценю вашу помощь! – Ras