Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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
Android 如何使用片段将onclick事件添加到listview中_Android_Android Fragments_Android Listview_Onclicklistener - Fatal编程技术网

Android 如何使用片段将onclick事件添加到listview中

Android 如何使用片段将onclick事件添加到listview中,android,android-fragments,android-listview,onclicklistener,Android,Android Fragments,Android Listview,Onclicklistener,我在尝试将SetonicClickListener添加到片段中时遇到问题 public class LocalesFragmento extends Fragment { ListView locales_list; private List localesList; private Context context; public LocalesFragmento() { } @Override public View onCreateView(LayoutInflater inflat

我在尝试将SetonicClickListener添加到片段中时遇到问题

public class LocalesFragmento extends Fragment {

ListView locales_list;
private List localesList;

private Context context;

public LocalesFragmento() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View vista = inflater.inflate(R.layout.locales_list, container, false);
    locales_list = (ListView) vista.findViewById(R.id.localesList);

    new getLocalesAsyncTask().execute();
    return vista;
}

private void setListAdapter() {
    Log.e("Adapter","Adapter...");
    locales_list.setAdapter(new LocalesAdapter(getActivity(), getActivity(), localesList));

    locales_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            //detailInstagram(list.get(position));
        }
    });
}
这是我的片段

public class LocalesFragmento extends Fragment {

ListView locales_list;
private List localesList;

private Context context;

public LocalesFragmento() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View vista = inflater.inflate(R.layout.locales_list, container, false);
    locales_list = (ListView) vista.findViewById(R.id.localesList);

    new getLocalesAsyncTask().execute();
    return vista;
}

private void setListAdapter() {
    Log.e("Adapter","Adapter...");
    locales_list.setAdapter(new LocalesAdapter(getActivity(), getActivity(), localesList));

    locales_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            //detailInstagram(list.get(position));
        }
    });
}
setOnItemClickListener永远不会执行。有什么想法吗? 我是否需要实现其他方法

谢谢。
致以最诚挚的问候。

您在onActivityCreated方法上启动AsyncTask,因为在这里,在附加布局之前,您正在启动一个async,这可能是侦听器正在设置的原因

@Override
public void onActivityCreated(Bundle savedInstanceState) {
       super.onActivityCreated(savedInstanceState);

       locales_list.setAdapter(new LocalesAdapter(getActivity(), getActivity(), localesList));
       locales_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
              //detailInstagram(list.get(position));

            }
        });
        new getLocalesAsyncTask().execute();
}

您的LocaleAdapter可能是原因。您将上下文getActivity传递给适配器两次

locales_list.setAdapter(new LocalesAdapter(getActivity(), getActivity(), localesList));

确保传递给LocaleAdapter的参数正确。

看起来您没有调用setListAdapter方法。如果你是,你从哪里调用这个方法?是的,我调用了这个方法。。。在执行AsyncTask以获取数据表单WebService之前。您的列表项布局是什么样的?如果任何视图是可单击的或可聚焦的,例如它包含一个按钮,则侦听器将永远不会被调用。LocaleAdapter的构造函数对我来说似乎很奇怪。我通常在实例化调用中使用分配给上下文类型变量mCtx的getApplicationContext。你有两次活动。为什么需要两次上下文?发布您的listview项目布局。如果您使用了任何具有类似焦点按钮的视图,imageButton则setOnItemClickListener不会调用。如果您正在将自定义布局加载到listview,则将android:focusable=false添加到其子视图