2015-07-03 70 views
0

当前遇到一个问题,尝试使用对话框片段输入(或虚拟输入)更新列表片段时,所有内容都编译完成,但是看不到列表中的任何更改。 请让我知道您的想法。谢谢。正在使用列表适配器更新列表片段

public class NewEventDialogFragment extends DialogFragment { 
 
    private List<GlobalClass> mItems; 
 
    EditText editText; 
 

 
    @Override 
 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
 
     //editText = (EditText) findViewById(R.id.editText); 
 
     builder.setMessage("What Would You Like to Name the Event?") 
 
       .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
 
        public void onClick(DialogInterface dialog, int id) { 
 

 
         mItems = new ArrayList<GlobalClass>(); 
 
         mItems.add(new GlobalClass("Whoiszzzzzzzzzzzzzzthis", "Adsdfdsdomg")); 
 
         mItems.add(new GlobalClass("Whodsfzzzzzzzzzzzzzsdfsisthis", "Addsdfdfomg")); 
 
         mItems.add(new GlobalClass("Whoisthzzzzzzzzzzzzzzsdfdsfis", "Addosdfsdfmg")); 
 
         // Create the adapter to convert the array to views 
 
         MainTabsPagerAdapter adapter = new MainTabsPagerAdapter(getActivity(), mItems); 
 
         // Attach the adapter to a ListView 
 

 
         adapter.addAll(mItems); 
 

 
         adapter.notifyDataSetChanged(); 
 
         //setListAdapter(new MainTabsPagerAdapter(getActivity(), mItems)); 
 
        } 
 
       }) 
 
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
 
        public void onClick(DialogInterface dialog, int id) { 
 
         // User cancelled the dialog 
 
        } 
 
       }); 
 
     View view = getActivity().getLayoutInflater().inflate(R.layout.neweventdialog_fragment, null); 
 
     builder.setView(view); 
 

 
     return builder.create(); 
 

 
    } 
 

 
}

private List<GlobalClass> mItems;  // ListView items list 
 

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

 
    // initialize the items list 
 
    mItems = new ArrayList<GlobalClass>(); 
 
    Resources resources = getResources(); 
 

 
    mItems.add(new GlobalClass("Whoisthis", "Adsdfdsdomg")); 
 
    mItems.add(new GlobalClass("Whodsfsdfsisthis", "Addsdfdfomg")); 
 
    mItems.add(new GlobalClass("Whoisthsdfdsfis", "Addosdfsdfmg")); 
 

 
    // initialize and set the list adapter 
 
    setListAdapter(new MainTabsPagerAdapter(getActivity(), mItems)); 
 
}

+0

我没有看到代码这个“//安装转接到ListView”哪里是你listview.setAdapter(适配器); – Broak

+0

确定我添加了ListView listview =(ListView)findViewById(R.id.list); listview.setAdapter(适配器);但findViewById不能解决 – Devilishdil24

+0

你的listview仍然可能被称为R.android.id.list或类似的东西,将其更改为@ + id/list – Broak

回答

0
  1. 你需要有ListView在布局R.layout.neweventdialog_fragment和这个小工具绑定到您的视图中的代码,然后setAdapter就可以了。

    View view = getActivity().getLayoutInflater().inflate(R.layout.neweventdialog_fragment, null); 
    ListView listView = (ListView) view.findViewById(R.id.listView); // you bind to listView your widget 
    listView.setAdapter(adapter); // you set adapter 
    builder.setView(view); 
    
    return builder.create(); 
    
  2. 当你想要出现DialogFragment,您使用NewEventDialogFragment.newInstance().show(getSupportFragmentManager(),CURRENT_FRAGMENT_TAG);