回收活动,用于ListView的不同元素

时间:2015-06-18 10:02:36

标签: android android-listview android-recyclerview

:)所以,我有一个片段,带有listview。 当我点击列表视图中的任何项目(ListView1的标识)时,它会打开一个新的片段,另一个列表查看ListView2的标识。 对于ListView2的每个元素,我必须加载一个不同的列表。

但我不知道该怎么做,我只能加载。

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View fragment = inflater.inflate(R.layout.fragment_stanze, container, false);
    Log.i("STANZEEEEE", "SONO NELLA FRAGMENT STANZE");
    listViewStanze = (ListView)fragment.findViewById(R.id.listViewStanze);
    listaStanze = Singleton.getInstance().getListaAbitazioni().get(2).getListaCase().get(0).getDettaglio().getListaStanze();
    adapterStanze = new AdapterStanze(listaStanze);
    listViewStanze.setAdapter(adapterStanze);
    return fragment;
}

正如你所知,我将只加载列表:listaStanze,位置0:getListaCase (). get (0) .getDettaglio (). getListaStanze ();

但是我很感兴趣,请放上listview2的每个项目,listaStanze不同。

getListaCase (). Get (1) .getDettaglio (). GetListaStanze ();
 getListaCase (). Get (2) .getDettaglio (). GetListaStanze ();
 getListaCase (). Get (3) .getDettaglio (). GetListaStanze ();

我想这样做,为listaView1的每个元素回收相同的片段,不一定是其他片段。 所以我不浪费资源,而且一切都是动态的

或者我是否被迫为ListView1的每个元素创建更多片段?

谢谢。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

没有必要以静态方式工作,但我必须动态地完成。

我必须使用Singleton来阻止Get和Set方法,这是我感兴趣的对象。

在这种情况下,对象:案例(意大利语)

要在ListView1中调用 setSelectedCasa 方法, 但是我在ListView2中的片段称为 getSelectedCasa ,如下所示:

片段1,包含ListView1:

listViewCase.setOnItemClickListener(newAdapterView.OnItemClickListener() {    
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        
Singleton.getInstance().setSelectedCasa(listaCase.get(position));        
Intent intent0 = new Intent(getActivity(), ActivityStanze.class);                
startActivity(intent0);
}});

片段2,包含ListView2

listViewStanze = (ListView)fragment.findViewById(R.id.listViewStanze);
listaStanze = Singleton.getInstance().getSelectedCasa().getDettaglio().getListaStanze();
adapterStanze = new AdapterStanze(listaStanze);
listViewStanze.setAdapter(adapterStanze);

通过这种方式,我可以为listview的每个项目提供相同的视图。 在同一视图中,将根据元素加载不同的数据,在这种情况下,基于ListView1的位置列表,当用户点击时。

我谈到了Fragment,而你看到的代码就是创建了一个Activity。 我使用Activity作为我的框架(如编程Java Desktop),而片段作为Panel。

然后对于每个“视图”,这是我的片段,我将有一个容器(FRAME),这是我的活动。