gpt4 book ai didi

java - 显示/隐藏自定义 ListView 中每个项目的 TextView

转载 作者:行者123 更新时间:2023-12-02 04:15:58 24 4
gpt4 key购买 nike

我有:

  • 自定义 ListView 项布局,内部有一个名为 numberViewTextView
  • 名为 showNumbersItem 的可检查选项菜单项

如果选中 showNumbersItem,我想将 numberViewisVisible 属性设置为 true,并且false 如果不是。

目前,我有以下代码:

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

if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
}

TextView numberView = (TextView) itemView.findViewById(R.id.numberView);
numberView.setText("+33601234567");
numberView.setEnabled(showNumbers); //showNumbers is a boolean

return itemView;
}

1. 如何在填充列表之前将 showNumbers boolean 值设置为 showNumbersItem.isChecked

我尝试使用这段代码...:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);

showNumbers = menu.findItem(R.id.show_numbers).isChecked();
}

...但是 Android Studio 说:“无法访问的语句”

2. 如何为 ListView 中的每个项目设置 numberViewisVisible 属性?

目前,我有以下代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {

case (R.id.show_numbers):
item.setChecked(!item.isChecked());
showNumbers = item.isChecked();

//I don't know

break;
}
return super.onOptionsItemSelected(item);
}

最佳答案

首先,您需要将 showNumbers 变量传递给适配器,并且需要在 getView() 中添加代码以使 View 不可见。您可能想将“可见性”设置为“消失”。如果未显示,则 Invisible 会为 View 事件留出空间。

if(showNumbers)
numberView.setVisibility(View.VISIBLE);
else
numberView.setVisibility(View.INVISIBILE);
// or numberView.setVisibility(View.GONE);

那么我认为你与 onPrepareOptionMenus() 没有任何关系。它告诉您代码无法访问,因为代码之前有一个 return 语句。如果有必要,你应该这样做:

showNumbers = menu.findItem(R.id.show_numbers).isChecked();
return super.onPrepareOptionsMenu(menu);

最后在 onOptionItemSelected() 中,您应该更改适配器中的 boolean 值并调用 notificationDatasetChanged():

case (R.id.show_numbers):
item.setChecked(!item.isChecked());
showNumbers = item.isChecked();
yourAdapter.setShowNumbers(showNumbers );
yourAdapter.notifyDatasetChanged();
break;

您可能需要在适配器类中添加 showNumbers 的 setter。

关于java - 显示/隐藏自定义 ListView 中每个项目的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com