Mou*_*ice 16 android android-actionbar-compat
如何在扩展ListActivity的活动中使用"android-support-v7-appcompat"的ActionBarActivity.
例如,我有一个活动
public class xxxxxListActivity
extends ListActivity implements OnItemSelectedListener {
// ...................
}
Run Code Online (Sandbox Code Playgroud)
在上面的活动中我想使用"ActionBarActivity",但由于java dosent支持多重继承,我无法使其正常工作.
Pat*_*ail 41
这是ActionBarListActivity的一个实现:
public abstract class ActionBarListActivity extends ActionBarActivity {
private ListView mListView;
protected ListView getListView() {
if (mListView == null) {
mListView = (ListView) findViewById(android.R.id.list);
}
return mListView;
}
protected void setListAdapter(ListAdapter adapter) {
getListView().setAdapter(adapter);
}
protected ListAdapter getListAdapter() {
ListAdapter adapter = getListView().getAdapter();
if (adapter instanceof HeaderViewListAdapter) {
return ((HeaderViewListAdapter)adapter).getWrappedAdapter();
} else {
return adapter;
}
}
}
Run Code Online (Sandbox Code Playgroud)
就像常规的ListActivity一样,你需要一个包含一个ID为android.R.id.list的ListView的布局(XML中的"@android:id/list").
getListAdapter()中的spiel用于处理已将List视图添加到ListView的情况.看起来像ListView将自己的适配器设置为HeaderViewListAdapter,因此我们必须尝试获取包装的适配器以防止出现错误.
编辑:尝试添加此函数以满足onListItemClick的需要:
protected void onListItemClick(ListView lv, View v, int position, long id) {
getListView().getOnItemClickListener().onItemClick(lv, v, position, id);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |