Android 具有多个按钮的自定义ListView项的onClickListener
在我的程序中,我有一个片段,可以动态地将自定义项添加到ListView中。这些项都有两个按钮,它们应该具有特定的功能(例如从列表中删除特定项)。我想为它们设置一个OnClickListener,在片段类中调用一个函数 当我尝试在onCreateView()方法中添加onClickListener时,简单的xml onClick属性找不到该函数(就像静态按钮的侦听器一样)。但是当创建片段时,会调用NullPointerException,因为引用的按钮不是片段(?)的一部分Android 具有多个按钮的自定义ListView项的onClickListener,android,android-fragments,onclicklistener,Android,Android Fragments,Onclicklistener,在我的程序中,我有一个片段,可以动态地将自定义项添加到ListView中。这些项都有两个按钮,它们应该具有特定的功能(例如从列表中删除特定项)。我想为它们设置一个OnClickListener,在片段类中调用一个函数 当我尝试在onCreateView()方法中添加onClickListener时,简单的xml onClick属性找不到该函数(就像静态按钮的侦听器一样)。但是当创建片段时,会调用NullPointerException,因为引用的按钮不是片段(?)的一部分 按下动态添加的按钮(或
按下动态添加的按钮(或复选框)后,如何从片段中调用函数?如果发布一些代码,这会更容易 在我的代码中,我有一些类似的东西,我有一个带有数组适配器的listview,在某些行中,我有一个带有函数的imageButton 我用一个类来解决我的问题,在这个类中,我将函数应用于按钮 主要类别代码:
ListViewResources listViewResources = new ListViewResources(this, resourcesName);
listView = (ListView) popupView.findViewById(R.id.listView1);
listView.setAdapter(listViewResources);
ListViewResources\u类:
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;
}
公共类ListViewResources扩展了ArrayAdapter{
活动语境;
字符串[]资源名称;
公共ListViewResources(活动上下文,字符串[]resourcesName){
super(context,R.layout.popup\u listitem\u resources,resourcesName);
this.context=上下文;
this.resourcesName=resourcesName;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气器。充气(R.layout.popup\u listitem\u资源,null,true);
TextView resourceName=(TextView)rowView.findViewById(R.id.textViewResourceName);
ImageView openResource=(ImageView)rowView.findViewById(R.id.buttonOpenResource);
openResource.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//单击按钮时发生的代码
}
});
resourceName.setText(resourcesName[position]);
返回行视图;
}
listview中的一个项目有两个按钮?单击是否不工作?