Android 列表视图 - 单击后更改项目按钮文本

Android Listview - Change Item Button Text After Clicking

我正在尝试将我的应用程序转换为 android 版本,我对 android 有点陌生。我有一个列表视图,其中的项目包括按钮。这是一个用户列表,你可以关注每个用户,当点击按钮时,只有在包含按钮的项目中,按钮文本应该变成"followed"。检索列表工作正常,但使用我下面的代码,按钮文本没有改变。我怎样才能做到这一点?非常感谢。

private class MyListAdapter extends ArrayAdapter<String>  {
    public MyListAdapter() {
        super(getActivity().getApplicationContext(), R.layout.fragment_users_cell, myItemList);
    }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            View cellView = convertView;

            if (cellView == null){
                cellView = getActivity().getLayoutInflater().inflate(R.layout.fragment_users_cell, parent, false);
            }

            profileBtn = (Button) cellView.findViewById(R.id.fragment_users_cell_profileBtn);
            followBtn = (Button) cellView.findViewById(R.id.fragment_users_cell_followBtn);

            profileBtn.setText(myItemList.get(position));


            profileBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    System.out.println(myItemList.get(position));

                    System.out.println(position);

                }
            });


            followBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    System.out.println(myItemList.get(position));

                    profileBtn.setText("followed");

                }
            });



            return cellView;

        }

    }

您需要更改 myItemList 中的值,以便下次加载视图时,设置为配置文件按钮上的文本的列表中的值将出现,ix 将紧随其后 即您需要在点击关注按钮时更新列表并通知 ListView.

followBtn.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View v) {
        System.out.println(myItemList.get(position));
        myItemList.get(position).set("followed");
        profileBtn.setText("followed");
    }
});

您必须在进行更改后更新您的数据集并刷新列表,以便它反映最新的更改。在您的情况下,文本会发生变化。

followBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                  profileBtn.setText("followed");
                  myItemList.add(position, "followed");//Change your dataset
                  notifyDataSetChanged();  //And refresh the adapter    
                }
            });