android onclick 被错误的类捕获

标签 android onclicklistener

我很难弄清楚为什么我的 onClick 被困在错误的类中。

我有一个带有自定义适配器并膨胀自定义行的 ListView

在我的 row.xml 中,我已将 onRowClick 放入 onClick 方法中,并且在后面的代码中我有:

public void onRowClick(View v)
{ 

     //do something;

}

应用程序的流程是: 登录=>显示ListView

如果成功,我会在登录中调用finish(),然后调用 Intent 以使用ListView打开类。

我的问题是 onClick 在 Login 类中捕获,而不是在 ListView 类中捕获。

代码:

public class TabComeLeave extends Activity 
{
    private ProgressDialog m_ProgressDialog = null; 
    private ArrayList<Item> m_items = null;
    private ItemAdapter m_adapter;
    private Runnable viewItem;

    private ListView listViewItem;

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab_come_leave); 

        listViewItems = (ListView)findViewById(R.id.listViewItems);
        listViewItems .setClickable(true);

        fillItemList();              
    }

    public void fillItemList()
    {  

        m_adapter = new ItemAdapter(SystemUtil.getInstance(), R.layout.list_row_come_leave, m_Items);               
        listViewItems.setAdapter(m_adapter);                      
    }

ItemAdapter.java:

public class ItemAdapter extends ArrayAdapter<Item> 
{
    private ArrayList<Item> items;

    public ItemAdapter(Context context, int textViewResourceId, ArrayList<Item> items) 
    {
            super(context, textViewResourceId, items);
            this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
    {
            View v = convertView;
            if (v == null) 
            {
                LayoutInflater vi = (LayoutInflater)SystemUtil.getInstance().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.list_row_come_leave, null);               
            }
            Item item = items.get(position);
            if (item!= null) 
            {
                    TextView itemName = (TextView)v.findViewById(R.id.textViewItemName);


                    if (itemName != null) 
                    {
                        itemName .setText(item.getitemFirstName());                            
                    }                    
            }           

            return v;
    }    
}

有人能指出我正确的方向吗?

非常感谢。

最佳答案

使用ListView时为什么不使用onItemClickListener而不是onRowClick,这样就不会出现这个问题了。

getListView().setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            //do something
        }
    });

关于android onclick 被错误的类捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878915/

相关文章:

java - 具有 onclick 帮助的 Recyclerview

android - 背景上的 FragmentStatePagerAdapter IndexOutOfBound

android - Asynctask 在 gcm 中的 demoactivity 中不起作用

javascript - $(document).on ('click' 多次触发

android - 自定义 DialogFragment 中的 View.OnClickListener

java - 单击监听器上的单选按钮仅在选择切换按钮后才起作用

android - 更改 NumberPicker 的步长

android - 如何在 Room 数据库中使用创建和打开回调

android - 没有构建应用程序的 Phonegap : Fast way of testing Camera-Functions,

java - 按钮点击不起作用 : button does nothing