按下此项目(布局)中的某个按钮后,我尝试更改列表视图中单个项目的内容。我在下面写了如何在适配器中尝试这样做。
View mCurrentConvertView;
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
convertView = (LinearLayout) LayoutInflater.from(parent.getContext()).inflate(R.layout.the_list_view_item_layout, parent, false);
}
mCurrentConvertView = convertView;
((TextView) convertView.findViewById(R.id.description)).setText("A Text");
((Button) convertView.findViewById(R.id.button)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onButtonClicked(mCurrentConvertView);
}
});
return convertView;
}
private void onButtonClicked (View mCurrentConvertView) {
((TextView) mCurrentConvertView.findViewById(R.id.description)).setText("A Different Text");
}
我还尝试将" notifyDataSetChanged()"在onButtonClicked()方法的最后但无济于事。通过调试,我知道单击按钮时会调用onButtonlicked()方法。
编辑:我设法使用ViewHolder使其工作,将其设置为按钮的标记,并将其作为参数传递给onButtonClicked();
public void onClick(View v) {
onButtonClicked((ViewHolder) v.getTag());
}
private void onButtonClicked (ViewHolder holder) {
holder.description.setText("A Different Text");
}
答案 0 :(得分:0)
在适配器中创建一个方法来更改项目的内容,并使用notifyDataSetChanged刷新适配器。