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
}
});
我正在尝试将我的应用程序转换为 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
}
});