ListView中的onItemClick侦听器在TabHost中不起作用

时间:2011-07-14 10:53:46

标签: android

Listview位于TabActivity内部,我无法生成listItem上的点击,尝试了很多方法但无法完成任务,因此,任何人都可以提供帮助。谢谢。

4 个答案:

答案 0 :(得分:5)

采用新视图然后膨胀它将解决tabView中的listview onClick中的问题......!

public View getView(final int position, View convertView1, ViewGroup parent) 
{

    final ViewHolder holder;

    final Context context;

    View convertView = null;

    if (convertView == null) 
    {
        convertView = mInflater.inflate(R.layout.file_display_binding, null);                       
        holder = new ViewHolder();
        System.out.println("inside efficient array");                       
        holder.file_imgview = (ImageView)convertView.findViewById(R.id.file_icon_diplay);                                        

        convertView.setOnClickListener(new View.OnClickListener()
        {
            //@Override
            public void onClick(View v) 
            {
            }
        }
    }


}

答案 1 :(得分:4)

首先,从它的ID获取ListView:

ListView lv = (ListView)findViewById(R.id.myListView);

然后,将其setOnItemClickListener设置为:

lv.setOnItemClickListener(new OnItemClickListener()
    {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3)
        {
            // TODO Auto-generated method stub

        }
    });

答案 2 :(得分:2)

lv.setOnItemClickListener(new OnClickListener()
            {               
                @Override
                public void onClick(View v) 
                {
                    Intent inttentEventDetails = new Intent(Home.this, EventDetails.class);
                    inttentEventDetails.putExtra("EventID", v.getId());
                    overridePendingTransition(R.anim.slide_left, R.anim.slide_right);

                    TabGroupActivity pActivity = (TabGroupActivity)Home.this.getParent();
                    pActivity.startChildActivity("UpcomingEvents", inttentEventDetails);    
                }
            });

答案 3 :(得分:2)

您必须注意,当自定义ListView包含可聚焦元素(如按钮或复选框)时,onListItemClick方法可能无效(我认为这是预期的行为)。

所以你必须从这些可聚焦元素中移除焦点,它应该可以解决问题。换句话说,将以下命令添加到ListView的可聚焦元素:

android:focusable="false"
android:focusableInTouchMode="false"