了解更新listview的行

时间:2015-08-04 15:46:01

标签: android listview row

我发现这个方法更新了listview中的一行。我需要有人向我解释如何实现这个方法。如果我在我的类或我的类中的活动中实现,我也知道从哪里获得index参数。我需要的是逐个浏览列表项,并将项目中TextView的值与我从另一个活动获得的值进行比较,如果它们相等则使其处于活动状态。我已经实现了一个。我希望我事先正确地解释了所有人。

find $d -name '*.js' | xargs grep -L '[[:space:]]'

4 个答案:

答案 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()。
  • 您需要使用适配器。本教程使用简单的ArrayAdapter。阅读它。
  • 将行添加到ArrayList后,调用适配器的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);
        }

    }
}