2015-07-03 69 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);