Java 无法解析方法setListAdapter

Java 无法解析方法setListAdapter,java,android,android-fragments,android-listview,Java,Android,Android Fragments,Android Listview,我试图在片段中显示listView。但方法setListAdapter-未解析。 我认为,我必须获得listView的id(android.R.id.list); 然后:lv.setAdapter(mAdapter);但是它也不起作用 public class MyEmployeeFragment extends Fragment { private CustomAdapter sAdapter; private List<User> userList; P

我试图在片段中显示listView。但方法setListAdapter-未解析。 我认为,我必须获得listView的id(android.R.id.list); 然后:lv.setAdapter(mAdapter);但是它也不起作用

public class MyEmployeeFragment extends Fragment {

    private CustomAdapter sAdapter;
    private List<User> userList;
    ProgressDialog mProgressDialog;



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

        setHasOptionsMenu(true);
        userList = new ArrayList<User>();
        sAdapter = new CustomAdapter(getActivity(),userList);
        setListAdapter(sAdapter);
        new CustomAsync().execute();

    }

    private class CustomAdapter extends ArrayAdapter<User> {
        private LayoutInflater inflater;

        public CustomAdapter(Context context, List<User> objects) {
            super(context, 0, objects);
            inflater = LayoutInflater.from(context);
        }

        class ViewHolder {
            TextView id;
            TextView name;
            TextView lastName;
        }


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

            ViewHolder vH;
            if (convertView == null) {
                convertView = inflater.inflate(R.layout.list_item_employee, null);
                vH = new ViewHolder();
                vH.id = (TextView) convertView.findViewById(R.id.tv_employee_id);
                vH.name = (TextView) convertView.findViewById(R.id.tv_employee_name);
                vH.lastName = (TextView) convertView.findViewById(R.id.tv_employee_last_name);
                convertView.setTag(vH);
            } else
                vH = (ViewHolder) convertView.getTag();


            final User user = getItem(position);
            vH.id.setText(user.getId());
            vH.name.setText(user.getName());
            vH.lastName.setText(user.getLastName());


            return convertView;
        }
    }

    private class CustomAsync extends AsyncTask<Void,Void,List<User>>
    {}
}
公共类MyEmployeeFragment扩展了片段{
私人定制适配器;
私有列表用户列表;
进程对话框;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
设置选项菜单(真);
userList=newarraylist();
sAdapter=新的CustomAdapter(getActivity(),userList);
setListAdapter(sAdapter);
新建CustomAsync().execute();
}
私有类CustomAdapter扩展了ArrayAdapter{
私人充气机;
公共CustomAdapter(上下文、列表对象){
超级(上下文,0,对象);
充气器=充气器。从(上下文);
}
类视图持有者{
文本视图id;
文本视图名称;
文本视图姓氏;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
if(convertView==null){
convertView=充气机。充气(R.layout.list\u item\u employee,空);
vH=新的视窗支架();
vH.id=(TextView)convertView.findViewById(R.id.tv\u employee\u id);
vH.name=(TextView)convertView.findViewById(R.id.tv\u employee\u name);
vH.lastName=(TextView)convertView.findViewById(R.id.tv\u employee\u last\u name);
convertView.setTag(vH);
}否则
vH=(ViewHolder)convertView.getTag();
最终用户=getItem(位置);
vH.id.setText(user.getId());
vH.name.setText(user.getName());
vH.lastName.setText(user.getLastName());
返回视图;
}
}
私有类CustomAsync扩展了AsyncTask
{}
}
XML


setListAdapter()
ListFragment
中的一个方法。为此,您需要扩展
ListFragmnet
,而不是
Fragment

换行

public class MyEmployeeFragment extends Fragment
进入

setListAdapter()
ListFragment
中的一个方法。为此,您需要扩展
ListFragmnet
,而不是
Fragment

换行

public class MyEmployeeFragment extends Fragment
进入


setListAdapter
ListFragment
的一种方法,而您的片段扩展了
fragment

因此,您可以扩展
ListFragment

扩展
Fragment
使用
ListView
膨胀布局,在
Fragment
onCreateView
中初始化
ListView
,然后使用
ListView.setAdapter(适配器)

以防您想要扩展片段

 <ListView
    android:id="@+id/list"

setListAdapter
ListFragment
的一种方法,而您的片段扩展了
fragment

因此,您可以扩展
ListFragment

扩展
Fragment
使用
ListView
膨胀布局,在
Fragment
onCreateView
中初始化
ListView
,然后使用
ListView.setAdapter(适配器)

以防您想要扩展片段

 <ListView
    android:id="@+id/list"

您需要首先定义ListView:

ListView list = (ListView) findById(android.R.id.list);
稍后,您需要放置适配器:

list.setAdapter(sAdapter);
或改变

extends Fragment


您需要首先定义ListView:

ListView list = (ListView) findById(android.R.id.list);
稍后,您需要放置适配器:

list.setAdapter(sAdapter);
或改变

extends Fragment


扩展列表片段
应该可以正常工作

下面是一个适合我的示例

public class Chicks extends ListFragment implements OnItemClickListener  {

}

扩展列表片段
应该可以正常工作

下面是一个适合我的示例

public class Chicks extends ListFragment implements OnItemClickListener  {

}

您的asynctask不适用于stackOverflow。应用程序内异步代码是允许的。如果你想要碎片,你可以按照我帖子中的建议去做。你的异步任务不只是为了堆栈溢出。应用程序内异步代码是可行的。如果你想要片段,你可以按照我帖子中的建议去做。我试着使用
ListFragment
。但是,
FragmentTransaction
不起作用。我想使用
Fragment
我还试着使用
ListFragment
。但是,
FragmentTransaction
不起作用。我想用
Fragment
有一个解决方案!就这些@重写CreateView上的公共视图(LayoutInflater充气器、ViewGroup容器、Bundle savedInstanceState){userList=new ArrayList();sAdapter=new CustomAdapter(getActivity(),userList);View rootView=inflater.inflate(R.layout.my_employe,container,false);ListView lv=(ListView)rootView.findViewById(R.id.list);lv.setAdapter(sAdapter);return rootView;}`有一个解决方案!这一切!@覆盖CreateView上的公共视图(LayoutFlater充气器,ViewGroup容器,Bundle savedInstanceState){userList=new ArrayList();sAdapter=new CustomAdapter(getActivity(),userList);View rootView=充气器。充气(R.layout.my_Employee,容器,false);ListView lv=(ListView)rootView.findViewById(R.id.list);lv.setAdapter(sAdapter);返回rootView;}`