简体   繁体   English

如何将setAdapter用于另一个Fragment中的ListView?

[英]How can I use setAdapter for a ListView in another Fragment?

I am trying to setAdapter (called adapter) to another ListView in DemandFragment, that ListView in DemandFragment is called lv. 我正在尝试将setAdapter(称为适配器)设置为DemandFragment中的另一个ListView,DemandFragment中的ListView称为lv。

How can I put/set the adapter in FinishPostFragment to the ListView (callend lv) in DemandFragment? 如何将FinishPostFragment中的适配器放置/设置为DemandFragment中的ListView(调用lv)?

FinishPostFragment: 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;

DemandFragment: DemandFragment:

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);

}

} }

Here is a snippit that I used recently.... 这是我最近使用的摘录...

@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;
}

The brackets may be a little off, I tried doing this off the top of my head. 括号可能有点不对,我试着将其放在头顶上。 Let me know if this works! 让我知道这个是否奏效!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM