Java 如何在listview中动态更改项目布局的内容?

Java 如何在listview中动态更改项目布局的内容?,java,android,listview,adapter,android-viewholder,Java,Android,Listview,Adapter,Android Viewholder,我试图更改listview中单个项目的内容,一旦按下该项目中的某个按钮,即布局。我已经在下面写下了如何在适配器中实现它 View mCurrentConvertView; @Override public View getView(final int position, View convertView, final ViewGroup parent) { if (convertView == null) { convertView = (LinearLayout) L

我试图更改listview中单个项目的内容,一旦按下该项目中的某个按钮,即布局。我已经在下面写下了如何在适配器中实现它

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");
}

在适配器中创建一个methode来更改项目的内容,并使用notifyDataSetChanged刷新适配器。

谢谢,但我使用ViewHolder成功地将其设置为按钮的标记,并将其作为参数传递给onButtonClicked;我编辑了原始评论,并做了解释。