[英]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.