我的类扩展了Activity,而不是ListActivity。我在创建方法上有这个代码,但我从列表中选择一个项目,它的背景不保持橙色。我必须将模拟器中的箭头向下移动以在列表视图上导航。
当我点击模拟器上的按钮中心时,日志不会显示该消息。
我厌倦了尝试许多想法,当我从列表中选择一个项目时,我仍然没有得到动作。 任何sugestions?非常感谢
final List<Profile> profilesList = getProfilesList();
ProfileArrayAdapter3 adapter = new ProfileArrayAdapter3(
getApplicationContext(), R.layout.profiles_item, profilesList);
listViewProfiles = (ListView) this.findViewById(R.id.profilesList);
listViewProfiles.setAdapter(adapter);
listViewProfiles.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Toast.makeText(getApplicationContext(), profilesList.get(position).getCardNumber(), Toast.LENGTH_SHORT).show();
Log.d("cardNumber",profilesList.get(position).getCardNumber());
}});
答案 0 :(得分:0)
Personnaly,我更喜欢在我的视图上使用点击侦听器而不是在列表本身上使用itemclicklistener。可以共享视图上的单击侦听器,您将使用onClick参数获取事件源。
以下是一个例子:
private SharedClickListener sharedListener = new SharedClikListener();
private class MovieArrayAdapter extends ArrayAdapter<Movie>
{
public MovieArrayAdapter()
{
super(getApplicationContext(), R.layout.profiles_item, profilesList);
}//cons
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//you should build your own views here and fill them with
//a profile object, here I use super to compile the example
View view = super.getView(position, convertView, parent );
view.setOnClickListener( sharedListener );
return view;
}//met
}//inner class
private class ItemClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), ((your view class)v).getProfile().getCardNumber(), Toast.LENGTH_SHORT).show();
Log.d("cardNumber",((your view class) v).getProfile().getCardNumber());
}// met
}//inner class
此致 斯特凡