【问题标题】:onClickListener for custom ListView item with multiple ButtonsonClickListener 用于具有多个按钮的自定义 ListView 项目
【发布时间】:2017-02-09 17:47:22
【问题描述】:

在我的程序中,我有一个 Fragment,它可以动态地将自定义项添加到 ListView。这些项目每个都有 2 个按钮,它们应该具有特定的功能(例如从列表中删除特定项目)。我想为他们设置一个 OnClickListener,在我的 Fragment 类中调用一个函数。

简单的 xml onClick 属性找不到该函数,当我尝试在 onCreateView() 方法中添加 onClickListener 时(如静态按钮的侦听器)。但是在创建 Fragment 时,会调用 NullPointerException,因为引用的 Button 不是 Fragment (?) 的一部分。

按下动态添加的按钮(或复选框)后,如何从 Fragment 调用函数?

【问题讨论】:

  • 列表视图中有两个按钮的项目?不工作点击?

标签: android android-fragments onclicklistener


【解决方案1】:

如果你发布一些代码,这会更容易

在我的代码中我有类似的东西,我有一个带有数组适配器的列表视图,在某些行中我有一个带有功能的 imageButton。

我用一个类来解决我的问题,以便在我的适配器上工作,并将功能应用于按钮。

Main_Class 代码:

ListViewResources listViewResources = new ListViewResources(this, resourcesName);
listView = (ListView) popupView.findViewById(R.id.listView1);
listView.setAdapter(listViewResources);

ListViewResouces_Class:

public class ListViewResources extends ArrayAdapter<String>{

Activity context;
String[] resourcesName;


public ListViewResources(Activity context, String[] resourcesName) {
    super(context, R.layout.popup_listitem_resources, resourcesName);

    this.context = context;
    this.resourcesName = resourcesName;

}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.popup_listitem_resources, null, true);

    TextView resourceName = (TextView)rowView.findViewById(R.id.textViewResourceName);
    ImageView openResource = (ImageView)rowView.findViewById(R.id.buttonOpenResource);

    openResource.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //code for happen on Button Click
        }
    });

    resourceName.setText(resourcesName[position]);

    return rowView;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多