我在SherlockActivity
更改了我的初始活动,以便从ABS的所有优势中受益。为此,我使用ListAdapterAnSco extends BaseAdapter
。
现在,我想在onclick
的{{1}}中管理onLongClick
和getView
。
我使用了几种组合,但我不能这样做。
注意:我使用ListAdapter
来获取商品
原始OnItemClickListener代码
SQLiteCursor
如何在OnClick方法中更改此代码以执行相同的工作?
我的getView
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();
}
答案 0 :(得分:0)
提取OnClickListener以分隔类并再次传递
MyClickListener.java
public class MyClickListener implements onItemClickListener
{
@override
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();
}
}
在适配器中删除
// Listen for ListView Item Click
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
}
});
YourActivity.java
@override
onCraete(Bundle x)
{
ListView listView = (ListView) findViewById(R.i.your_list_id);
listView.setAdapter(new YourAdapter());
listView.setOnItemClickListener(new MyClickListener());
}
答案 1 :(得分:0)
你可以使用:
holder.an.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(contetx,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(context, "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();
}
});
必须将和上下文传递给扩展BaseAdapter的类