我发现这个方法更新了listview中的一行。我需要有人向我解释如何实现这个方法。如果我在我的类或我的类中的活动中实现,我也知道从哪里获得index参数。我需要的是逐个浏览列表项,并将项目中TextView的值与我从另一个活动获得的值进行比较,如果它们相等则使其处于活动状态。我已经实现了一个。我希望我事先正确地解释了所有人。
find $d -name '*.js' | xargs grep -L '[[:space:]]'
答案 0 :(得分:3)
您需要更新数组适配器项
你有类似的东西
Adapter adapter = new Adapter
(收到list
您的数据,我们可以致电list
)
为了修改具有更新信息的视图,只需修改列表项然后调用即可
adapter.notifyDataSetChanged();
UI
如果我没有错,将会反映在require 'spec_helper'
describe SimulationsController, :type => :controller do
context "GET #index" do
it "populates an array of simulations" do
simulation = FactoryGirl.build(:simulation)
get :index
response.should render_template :index
end
end
end
上。
答案 1 :(得分:1)
此次调用适用于您使用listview
进行的课程(我猜这是一项活动)。
它基本上让您只需查找您正在查找的视图(或列表项)并直接从活动更新其子布局元素,而不是更新adapter
中的数据源。
根据功能的性质,更新数据源而不是直接操作视图可能更好。
另外,请考虑使用RecyclerView代替!
答案 2 :(得分:1)
我认为您需要良好的示例代码/项目来理解和实现带有支持数据的ListView。一个好的网页是@ Using lists in Android (ListView)。
网页中的代码片段:
public void run() {
list.remove(item);
adapter.notifyDataSetChanged();
...
}
注意:
remove
()。相反,您可以调用ArrayList的add
()。notifyDataSetChanged
(),如示例代码所示。答案 3 :(得分:0)
谢谢大家回答并抱歉我的英语不好,我得做我想做的事。我想要的是逐个访问列表中的项目,直到找到所需的项目然后工作。然后我分享对我有用的代码
public void seleccionarComprobante(Bundle bundle)
{
int inicio=lista_comp.getFirstVisiblePosition();
int fin = adapter.getCount();
Log.i("fatanumInicio",""+inicio);
Log.i("fatanumFin",""+fin);
for (int i=inicio; i<fin;i++)
{
View view = adapter.getView(i, null, lista_comp);
if(view!=null)
{
TextView nf = (TextView) view.findViewById(R.id.txt_item_rp_comprobantes_num_fiscal);
if(nf.getText().toString().equals(bundle.getString("num_fiscal")))
view.setSelected(true);
}
}
}