如何从ListView中选择项目?

时间:2011-05-31 16:31:28

标签: java android android-listview

我的类扩展了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());
     }});

1 个答案:

答案 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

此致  斯特凡