Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 如何在另一个片段中为ListView使用setAdapter?_Java_Android_Listview_Android Arrayadapter - Fatal编程技术网

Java 如何在另一个片段中为ListView使用setAdapter?

Java 如何在另一个片段中为ListView使用setAdapter?,java,android,listview,android-arrayadapter,Java,Android,Listview,Android Arrayadapter,我试图将adapter(称为adapter)设置到DemandFragment中的另一个ListView,DemandFragment中的ListView称为lv 如何将FinishPostFragment中的适配器放入/设置为DemandFragment中的ListView(callend lv) FinishPostFragment: @Override public boolean onOptionsItemSelected(MenuItem item) { switch (ite

我试图将adapter(称为adapter)设置到DemandFragment中的另一个ListView,DemandFragment中的ListView称为lv

如何将FinishPostFragment中的适配器放入/设置为DemandFragment中的ListView(callend lv)

FinishPostFragment:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.add_post_finish:
            // User chose the "Favorite" action, mark the current item
            // as a favorite...
            FragmentManager fm = getActivity().getFragmentManager();

            // put strings to listview in DemandFragment
            ParseObject post = new ParseObject("Posts");

            post.put("airport", airport_finish.getText().toString());
            post.put("date", date_finish.getText().toString());
            post.put("time", time_finish.getText().toString());
            post.put("persons", persons_finish.getText().toString());
            post.put("address", address_finish.getText().toString());
            post.put("flightnr", flightnr_finish.getText().toString());

            post.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    airport_finish.setText("");
                    date_finish.setText("");
                    time_finish.setText("");
                    persons_finish.setText("");
                    address_finish.setText("");
                    flightnr_finish.setText("");

                    ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
                    query.whereEqualTo("playerName", "Dan Stemkoski");
                    query.findInBackground(new FindCallback<ParseObject>() {
                        public void done(List<ParseObject> scoreList, ParseException e) {
                            if (e == null) {
                                ArrayList arraypost = new ArrayList<String>();

                                for (ParseObject j : scoreList) {

                                    arraypost.add(j.getString("airport"));
                                    arraypost.add(j.getString("date"));
                                    arraypost.add(j.getString("time"));
                                    arraypost.add(j.getString("persons"));
                                    arraypost.add(j.getString("address"));
                                    arraypost.add(j.getString("flightnr"));
                                }

                                ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, arraypost);

                                Log.d("score", "Retrieved " + scoreList.size() + " scores");
                            } else {
                                Log.d("score", "Error: " + e.getMessage());
                            }
                        }
                    });
                }
            });

                    fm.beginTransaction().replace(R.id.content_main, new DemandFragment()).commit();
            return true;
@覆盖
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.add\u post\u饰面:
//用户选择“收藏”操作,标记当前项目
//作为我的最爱。。。
FragmentManager fm=getActivity().getFragmentManager();
//将字符串放入DemandFragment中的listview
ParseObject post=新的ParseObject(“Posts”);
post.put(“airport”,airport_finish.getText().toString());
post.put(“date”,date\u finish.getText().toString());
post.put(“time”,time\u finish.getText().toString());
post.put(“persons”,persons_finish.getText().toString());
post.put(“address”,address_finish.getText().toString());
post.put(“flightnr”,flightnr_finish.getText().toString());
saveInBackground(新的SaveCallback(){
@凌驾
公共作废完成(Parsee异常){
airport_finish.setText(“”);
完成日期。SETEXT(“”);
完成时间。setText(“”);
persons_finish.setText(“”);
地址_finish.setText(“”);
flightnr_finish.setText(“”);
ParseQuery=ParseQuery.getQuery(“Posts”);
查询:whereEqualTo(“playerName”、“Dan Stemkoski”);
findInBackground(新的FindCallback(){
已完成公共作废(列表分数列表,Parsee异常){
如果(e==null){
ArrayList arraypost=新的ArrayList();
对于(ParseObject j:scoreList){
arraypost.add(j.getString(“airport”);
arraypost.add(j.getString(“日期”));
add(j.getString(“time”);
arraypost.add(j.getString(“persons”);
add(j.getString(“地址”);
add(j.getString(“flightnr”);
}
ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,arraypost);
Log.d(“分数”、“检索到的分数”+scoreList.size()+“分数”);
}否则{
Log.d(“分数”,“错误:+e.getMessage());
}
}
});
}
});
fm.beginTransaction().replace(R.id.content_main,new DemandFragment()).commit();
返回true;
需求碎片:

public class DemandFragment extends Fragment {

ListView lv;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_demand, container, false);

    lv = (ListView) rootView.findViewById(R.id.listDemand);

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // clicked on item show post

        }
    });

    return rootView;
}

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

    setHasOptionsMenu(true);

}
公共类DemandFragment扩展了片段{
ListView lv;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.fragment\u demand,container,false);
lv=(ListView)rootView.findViewById(R.id.listDemand);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//点击项目显示帖子
}
});
返回rootView;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
}

}

这是我最近使用的一个剪贴画

@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_game_history, container, false);
    if(view != null){
        //Init views
        yourList = new ArrayList<>();
        lv= (ListView) view.findViewById(R.id.list_Games);
        adapter = new YourAdapter(getContext(), yourList)
        lv.setAdapter(adapter);
            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // clicked on item show post

    }
});

}
return view;
}
@覆盖
创建视图上的公共视图(布局、充气机、最终视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u game\u history,container,false);
如果(视图!=null){
//初始视图
yourList=newarraylist();
lv=(ListView)view.findViewById(R.id.list\u游戏);
adapter=新的YourAdapter(getContext(),yourList)
低压设置适配器(适配器);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//点击项目显示帖子
}
});
}
返回视图;
}

括号可能有点脱落,我试着从头开始做。让我知道这是否有效!

我知道我必须使用:“nameListview”。setAdapter(适配器)为什么不将数组信息传递给另一个片段,然后在那里创建适配器?我不明白为什么要在不使用适配器的地方创建适配器?好吧,听起来很聪明。你能用代码解释一下吗..基于我上面的代码。