【发布时间】:2014-12-29 18:45:32
【问题描述】:
所以,我正在处理片段中的列表视图... “onItemClick”不起作用,但 onItemLongClick 和刷新效果很好.. (使用 SherlockLibary...) 这是我的代码:
public static class MyListActivity extends SherlockListFragment
implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener,OnRefreshListener {
ArrayList<article> items2;
private String[] articles = {"x","y","z"}; //articles titles
private String[] Dates = {"20:12"
, "18:20"
, "15:15"
, "14:11"
, "10:00"
}; //articles dates
private Site[] Sites = {
Site.Ynet
, Site.bla
, Site.blabla
, Site.blablabla
, Site.blablabla
}; //articles Gender
private void initData() {
items2 = new ArrayList<article>();
for (int i = 0; i < 5; i++) {
items2.add(new article(articles[i], Dates[i], Sites[i]));
}
}
private PullToRefreshLayout mPullToRefreshLayout;
ListView list;
MyArrayAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_main, container, false);
mPullToRefreshLayout = (PullToRefreshLayout) view.findViewById(R.id.listlay);
ActionBarPullToRefresh.from(getActivity())
.allChildrenArePullable()
.listener(this)
.setup(mPullToRefreshLayout);
initData();
list = (ListView)view.findViewById(android.R.id.list);
adapter = new MyArrayAdapter(getActivity(), items2);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
list.setOnItemLongClickListener(this);
return view;
}
// Handle click on an item (displays it in a Toast)
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
items2.remove(position);
Toast.makeText(getActivity(), "select: " + items2.get(position).toString(), Toast.LENGTH_LONG).show();
}
// Handle a long click on an item (deletes it)
@Override
public boolean onItemLongClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getActivity(),
"del: " + items2.get(position).toString(),
Toast.LENGTH_LONG).show();
items2.remove(position);
adapter.notifyDataSetChanged(); // Update the ListView
return true; // i.e. all ended well
}
@Override
public void onRefreshStarted(View view) {
/**
nathing here yet...
* Simulate Refresh with 4 seconds sleep
*/
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(Constants.SIMULATED_REFRESH_LENGTH);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Notify PullToRefreshLayout that the refresh has finished
mPullToRefreshLayout.setRefreshComplete();
}
}.execute();
}
}
知道我能用它做什么吗? 我尝试了很多,但 nathing 工作....请帮助....
我尝试添加 list.setItemsCanFocus(false);或 android:focusable="false" 或一个 android:clickable="false" ... 没用...
【问题讨论】:
标签: android listview android-fragments onitemclicklistener onitemclick