Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Java中获取Android的McClickListener功能_Java_Android_Listview_Onitemclicklistener - Fatal编程技术网

无法在Java中获取Android的McClickListener功能

无法在Java中获取Android的McClickListener功能,java,android,listview,onitemclicklistener,Java,Android,Listview,Onitemclicklistener,我对Java相当陌生,对ListView几乎没有经验。我已经能够使用自定义列表适配器成功地将项目添加到listview。但是,我现在希望在触摸每个项目时执行操作 我无法在触摸列表项时执行OnItemClickListener事件,我不确定问题出在哪里 代码: public class FragmentA extends Fragment implements OnItemClickListener{ @Override public View onCreateView(LayoutInflate

我对Java相当陌生,对ListView几乎没有经验。我已经能够使用自定义列表适配器成功地将项目添加到listview。但是,我现在希望在触摸每个项目时执行操作

我无法在触摸列表项时执行OnItemClickListener事件,我不确定问题出在哪里

代码:

public class FragmentA extends Fragment implements OnItemClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View V = inflater.inflate(R.layout.fragment_a, container, false);

    ListView listView = (ListView)V.findViewById(R.id.list);


        getData data = getData.getMyData();


      CustomList adapter = new
            CustomList(getActivity(), data.Headline.toArray(new String[data.Headline.size()]), data.Description.toArray(new String[data.Description.size()]), data.imageId.toArray(new Integer[data.imageId.size()]));      
      listView.setAdapter(adapter);

    return V;

}

public void onItemClickListener(AdapterView<?> parent, View view, int position, long id)
{
    Log.e("CLICKED","CLICKED");
}
}
public class CustomList extends ArrayAdapter<String>{

private final Activity context;
private final String[] titleId;
private final String[] descriptionId;
private final Integer[] pictureid;

public CustomList(Activity context,
String[] Headline, String[] Description, Integer[] imageId) {
super(context, R.layout.single_row, Headline);
this.context = context;
this.titleId = Headline;
this.descriptionId = Description;
this.pictureid = imageId;

}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.single_row, null, true);

TextView txtTitle = (TextView) rowView.findViewById(R.id.tvTitle);
TextView txtDescription = (TextView) rowView.findViewById(R.id.tvDescription);
ImageView imageView = (ImageView) rowView.findViewById(R.id.ivIcon);

txtTitle.setText(titleId[position]);
txtDescription.setText(descriptionId[position]);
imageView.setImageResource(pictureid[position]);
return rowView;
}

}
public类FragmentA扩展片段实现了mclicklinklistener{
@凌驾
创建视图上的公共视图(布局充气机、视图组容器、捆绑包保存状态){
视图V=充气机。充气(R.layout.fragment_a,容器,假);
ListView ListView=(ListView)V.findViewById(R.id.list);
getData=getData.getMyData();
CustomList适配器=新建
CustomList(getActivity()、data.Headline.toArray(新字符串[data.Headline.size()])、data.Description.toArray(新字符串[data.Description.size()])、data.imageId.toArray(新整数[data.imageId.size()]);
setAdapter(适配器);
返回V;
}
public void-McClickListener(AdapterView父对象、视图、整型位置、长id)
{
Log.e(“点击”、“点击”);
}
}
如果有帮助,下面是自定义适配器类的代码:

public class FragmentA extends Fragment implements OnItemClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View V = inflater.inflate(R.layout.fragment_a, container, false);

    ListView listView = (ListView)V.findViewById(R.id.list);


        getData data = getData.getMyData();


      CustomList adapter = new
            CustomList(getActivity(), data.Headline.toArray(new String[data.Headline.size()]), data.Description.toArray(new String[data.Description.size()]), data.imageId.toArray(new Integer[data.imageId.size()]));      
      listView.setAdapter(adapter);

    return V;

}

public void onItemClickListener(AdapterView<?> parent, View view, int position, long id)
{
    Log.e("CLICKED","CLICKED");
}
}
public class CustomList extends ArrayAdapter<String>{

private final Activity context;
private final String[] titleId;
private final String[] descriptionId;
private final Integer[] pictureid;

public CustomList(Activity context,
String[] Headline, String[] Description, Integer[] imageId) {
super(context, R.layout.single_row, Headline);
this.context = context;
this.titleId = Headline;
this.descriptionId = Description;
this.pictureid = imageId;

}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.single_row, null, true);

TextView txtTitle = (TextView) rowView.findViewById(R.id.tvTitle);
TextView txtDescription = (TextView) rowView.findViewById(R.id.tvDescription);
ImageView imageView = (ImageView) rowView.findViewById(R.id.ivIcon);

txtTitle.setText(titleId[position]);
txtDescription.setText(descriptionId[position]);
imageView.setImageResource(pictureid[position]);
return rowView;
}

}
公共类CustomList扩展了ArrayAdapter{
私人最终活动背景;
私有最终字符串[]titleId;
私有最终字符串[]descriptionId;
私有最终整数[]pictureid;
公共自定义列表(活动上下文,
字符串[]标题,字符串[]说明,整数[]图像ID){
超级(上下文、右布局、单行、标题);
this.context=上下文;
this.titleId=标题;
this.descriptionId=说明;
this.pictureid=imageId;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(R.layout.single_row,null,true);
TextView txtTitle=(TextView)rowView.findViewById(R.id.tvTitle);
TextView txtDescription=(TextView)rowView.findViewById(R.id.tvDescription);
ImageView ImageView=(ImageView)rowView.findViewById(R.id.ivIcon);
setText(titleId[位置]);
setText(descriptionId[位置]);
setImageResource(pictureid[position]);
返回行视图;
}
}

将侦听器设置为您的ListView:

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Log.e("CLICKED","CLICKED");
    }
});

listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.e(“点击”、“点击”);
}
});

您必须使用listView.setOnItemClickListener将回调链接到视图

您可以执行以下操作:

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapter, View view,int pos, long id) {
        //Your code here
    }
});

setOnItemClickListener(this);就在setAdapter()之后,谢谢,在我添加了这个之后,我被提示添加未实现的方法,它是OnItemClick而不是OnItemClickListener。