Android:使用ArrayAdapter在ListFragment中使用不同的布局

时间:2014-02-23 19:02:04

标签: android android-layout android-arrayadapter android-listfragment findviewbyid

大家好,感谢您阅读我的问题!

我目前正在开发一款具有以下层次结构的Android应用: 一个FragmentActivity除以三ListFragments。 其中一个ListFragments使用自定义ArrayAdapterList<>上显示带有xml模板的ListView 这个List<>填充了给出id的数据集。 id低于10的数据集标记为“重要”,其他数据集标记为“不太重要”

这就是我要找的: 我有两个布局模板,我想用一个布局显示“重要”数据集,用另一个布局显示“不那么重要”。

我已经搜索了很长一段时间,但看起来没有人问过这样的问题。 我尝试使用第二个ListView并在其上应用第二个自定义ArrayAdapter,但不幸的是,有一个限制:因为我使用ListFragment,我被迫使用{ {1}}就像这样。

findViewById

当我尝试编写第二个自定义ListView list; list = (ListView) rootView.findViewById(android.R.id.list); 时,它显示错误:

ArrayAdapter

以下是整个ListView list; list_flat = (ListView) rootView.findViewById(android.R.id.list_flat);

ListFragment

}

这是我传递给我的 public class LeaguePage extends ListFragment{ Global global_var; ListView list, list_flat; List <League> leagues = null; ListAdapter adapter = null; View rootView; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.league_page, container, false); return rootView; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { // TODO Auto-generated method stub super.onViewCreated(view, savedInstanceState); list_flat = (ListView) rootView.findViewById(android.R.id.list_flat); try { leagues = Leagues_Parser.parse(getActivity().getAssets().open("league_raw.xml")); } catch (IOException e) { e.printStackTrace(); } adapter = new LeagueAdapter (getActivity(), R.layout.list_row, leagues); list.setAdapter(adapter); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Global.selectedTeam = Integer.valueOf(leagues.get(arg2).getInternalID()); Global.mViewPager.setCurrentItem(1, true); } }); }

的xml文件
ArrayAdapter

这是 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/liga_flat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="25dip" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:paddingBottom ="10dip" android:textColor="#040404" android:textSize="25sp" android:textStyle="normal" android:typeface="serif" /> </RelativeLayout>

的xml布局文件
ListFragment

1 个答案:

答案 0 :(得分:1)

您不应该提供ListView这样的ID:android:id="@+id/android:list2"ListView的ID应该是

<ListView android:id="@id/android:list"   
...... ></ListView>

<ListView android:id="@+id/sampleList"   
...... ></ListView>