OnClickListener事件无法在线性布局中工作

时间:2017-10-10 10:37:00

标签: android android-fragments android-linearlayout onclicklistener

LinearLayouts充当listView我想在onClickListener的行上添加list。 代码位于fragment

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    for (int i = 0; i < promos.size(); i++) {
        View rowView = inflater.inflate(R.layout.list_item, lv, false);
        holder = new NewsHolder();
        news = (News) promos.get(i);
        holder.title = (TextView) rowView.findViewById(R.id.title);
        holder.title.setText(news.title);
        holder.excerpt.setText(news.excerpt);
        lv.addView(rowView);
        rowView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(),"clicked item"+news.id,Toast.LENGTH_LONG).show();
            }
        });

    }
    mainL.addView(linear);
    return mainL;
}

3 个答案:

答案 0 :(得分:0)

在定义onclicklistner后,您需要在Linearlayout中添加rowView,

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

for (int i = 0; i < promos.size(); i++) {
    View rowView = inflater.inflate(R.layout.list_item, lv, false);
    holder = new NewsHolder();
    news = (News) promos.get(i);
    holder.title = (TextView) rowView.findViewById(R.id.title);
    holder.title.setText(news.title);
    holder.excerpt.setText(news.excerpt);

    rowView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(),"clicked item"+news.id,Toast.LENGTH_LONG).show();
        }
    });
    lv.addView(rowView);

}
mainL.addView(linear);
return mainL;
}

答案 1 :(得分:0)

添加了android:clickable =&#34; true&#34;到list_item.xml。

答案 2 :(得分:-2)

您似乎正在搜索此主题中的解决方案。阅读ListView with OnItemClickListener android