Java 如何在另一个片段中为ListView使用setAdapter?
我试图将adapter(称为adapter)设置到DemandFragment中的另一个ListView,DemandFragment中的ListView称为lv 如何将FinishPostFragment中的适配器放入/设置为DemandFragment中的ListView(callend lv) FinishPostFragment: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
@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(适配器)为什么不将数组信息传递给另一个片段,然后在那里创建适配器?我不明白为什么要在不使用适配器的地方创建适配器?好吧,听起来很聪明。你能用代码解释一下吗..基于我上面的代码。