【发布时间】:2013-10-29 12:30:02
【问题描述】:
我更改了SherlockActivity 中的初始活动,以便从 ABS 的所有优势中受益。为此,我使用ListAdapterAnSco extends BaseAdapter。
现在我想在我的ListAdapter 的getView 中管理onclick 和onLongClick。
我使用了几种组合,但我做不到。
注意:我使用SQLiteCursor 来获取物品
OnItemClickListener 原代码
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
Intent intent = new Intent(getApplicationContext(),ListPeriode.class);
SQLiteCursor cr=(SQLiteCursor)parent.getItemAtPosition(position);
String ansco=cr.getString(cr.getColumnIndex(DatabaseHelper.ANSCO));
AnSco an=new AnSco(ansco);
an.setIdan((int)id);
Toast.makeText(getApplicationContext(), "Année Scolaire: "+an.getAnsco(), Toast.LENGTH_LONG).show();
intent.putExtra("ANSCO_ID", an.getIdan());
intent.putExtra("ANSCO_AN", an.getAnsco());
cr.close();
startActivity(intent);
finish();
}
如何在 OnClick 方法中更改此代码以完成相同的工作?
我的视图
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.annee_sco_item, null);
// Locate the TextViews in listview_item.xml
holder.an = (TextView) view.findViewById(R.id.ansco_item);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
// Set the results into TextViews
holder.an.setText(listAnsco.get(position).getAnsco());
// Listen for ListView Item Click
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
}
});
return view;
}
【问题讨论】:
-
你的 onClickListener 工作正常吗?
-
将 SQLiteCursor cr 传递给您的适配器构造函数。
-
你的 onItemClick() 在哪里?
-
listView Row 中是否有任何按钮..?
-
这一行有错误:
SQLiteCursor cr=(SQLiteCursor)parent.getItemAtPosition(position);
标签: android onclicklistener listadapter onitemclicklistener