Android ListView和待定进度条
抱歉问这个问题听起来可能很愚蠢 但是:如何根据刚刚点击的单元格激活进度条 我有一个列表视图,长按后会显示一个菜单 当我单击其中一个选项时,我希望根据我单击的单元格在listView中显示ProgressBar。无论我在做什么,它当前总是显示我的第一个单元格Android ListView和待定进度条,android,listview,progress-bar,contextmenu,Android,Listview,Progress Bar,Contextmenu,抱歉问这个问题听起来可能很愚蠢 但是:如何根据刚刚点击的单元格激活进度条 我有一个列表视图,长按后会显示一个菜单 当我单击其中一个选项时,我希望根据我单击的单元格在listView中显示ProgressBar。无论我在做什么,它当前总是显示我的第一个单元格 public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.ge
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getOrder()) {
case 0:
mProgressBar = (ProgressBar)findViewById(R.id.welcome_progressbar);
mProgressBar.setVisibility(View.VISIBLE);
... some execution ....
return true;
case 1:
...
有人看到什么错误吗?这是因为findViewById在列表中找到视图的第一个实例。
您需要通过适配器中getView中的项目状态来处理这个问题。您可以尝试使用诸如selected/pressed之类的状态,或者只为您的项目设置一个布尔值,在getView中检查它,并在此基础上显示/隐藏进度。经过一些研究并重新实现CursorAdapter类的重载后,我有权获得getView()方法。问题是当我想的时候我怎么能叫它?根据我所看到的,当我实例化CustomAdapter类时,会调用getView()。在我的程序的某个点访问它?你知道吗?