在我的程序中,我有一个Fragment,可以动态地将自定义项添加到ListView。这些项目每个都有2个按钮,它们应该具有某些功能(比如从列表中删除特定项目)。我想为它们设置一个OnClickListener,在我的Fragment Class中调用一个函数。
简单的xml onClick属性找不到该函数,当我尝试在onCreateView()方法中添加onClickListener时(就像使用Listeners for static Buttons)。但是当创建片段时,会调用NullPointerException,因为引用的Buttons不是Fragment(?)的一部分。
如何在按下动态添加的按钮(或复选框)后从我的片段中调用函数?
答案 0 :(得分:0)
如果您发布一些代码
,这会更容易在我的代码中我有类似的东西,我有一个带有数组适配器的listview,在某些行中我有一个带有功能的imageButton。
我通过一个类来解决我的问题,以便在我的适配器上工作,并且我将functionaly应用于Button。
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;
}