![](/img/trans.png)
[英]ActionBarSherlock + ListView + Details: how to hide a Layout?
[英]How to use ListView with ActionBarSherlock?
我需要為我的項目使用ActionBarSherlock,但是使用ListView時出現錯誤。 我知道我需要擴展到ListActivity,但是我敢肯定還有另一種方法。 以下是我的課程。
public class ViewPagerAdapter extends FragmentPagerAdapter {
// Declare the number of ViewPager pages
final int PAGE_COUNT = 3;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
// Open Maths.java
case 0:
MathActivity maths = new MathActivity();
return maths;
// Open Units.java
case 1:
UnitsActivity units = new UnitsActivity();
return units;
// Open Physics.java
case 2:
PhysicsActivity physics = new PhysicsActivity();
return physics;
}
return null;
}
下面是我的MathActivity類,它擴展了SherlockFragment。
public class MathActivity extends SherlockFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.math_layout);
String[] mathList = new String[] {"Item 1", "Item 2", "Item 3", "Item 4"};
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mathList));
}
如果需要ListView,則可能應該擴展SherlockListFragment,而不僅僅是SherlockFragment。 (或者,您需要顯式地找到列表並設置其listadapter,而不是嘗試在包含的片段上設置listadapter。)
XML中的ListView必須具有@android:id / list的ID,例如mathlist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
然后是這樣的:
public class MathActivity extends SherlockListFragment implements OnItemClickListener
{
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.mathlist, null);
String[] mathList = new String[] {"Item 1", "Item 2", "Item 3", "Item 4"};
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mathList));
return view;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
// handle listview item clicks in here
}
// Don't let items be clicked until the activity has finished drawing everything:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getListView().setOnItemClickListener(this);
}
}
從“擴展SherlockFragment”更改為“擴展SherlockListFragment”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.