2

私は1つのアプリに取り組んでおり、クラスを使用して値を渡しているという点で、1つの画面に1つのリストビューがあります。の項目listviewクリック イベントで、値を選択するためのアクティビティが開きます。SharedPrefrenceそして、これらのデータを別のアクティビティに送りたかったので、この値をに保存しています。に値を格納しますSharedPreferencelistviewただし、アクティビティに戻っても更新されません。しかし、私は List を更新していonCreate()ます。

try{
            selectedParentMessage = ParentMessageListActivity.parentMsgSharedPref.getString("SelectedParentMessage", "None");

            System.out.println("Selected Parent Message:"+selectedParentMessage);

        }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();

        }

        items.add(new Setting_ActivitySectionItem("Sounds"));
        //items.add(new Setting_ActivityEntryItem("Cartoon's Voice", ""));
        items.add(new Setting_ActivityEntryItem("Record Parent's Message", ""+selectedParentMessage));
        items.add(new Setting_ActivityEntryItem("Import Lullaby", ""));


        items.add(new Setting_ActivitySectionItem("Alerts"));
        items.add(new Setting_ActivityEntryItem("Phone Number", ""));
        items.add(new Setting_ActivityEntryItem("Email Id", ""));
        items.add(new Setting_ActivityEntryItem("Send Notification", ""));
        //items.add(new EntryItem("Item 7", "This is item 2.4"));

        items.add(new Setting_ActivitySectionItem("Baby's Noise Level"));
        items.add(new Setting_ActivityEntryItem("High", ""));
        items.add(new Setting_ActivityEntryItem("Medium", ""));
        items.add(new Setting_ActivityEntryItem("Low", ""));
        //items.add(new EntryItem("Item 11", "This is item 3.4"));
        //items.add(new EntryItem("Item 12", "This is item 3.5"));

        items.add(new Setting_ActivitySectionItem("Set Auto-silent"));
        items.add(new Setting_ActivityEntryItem("Auto Silent", ""));

        items.add(new Setting_ActivitySectionItem("Set Battery reminder"));
        items.add(new Setting_ActivityEntryItem("Battery Reminder", ""));

        adapter = new Setting_ActivityEntryAdapter(this, items);
        adapter.notifyDataSetChanged();
        setListAdapter(adapter);

また、私は申し込んnotifydatasetchange()でいonResumeますonRestart()

public void onRestart(){
        super.onRestart();
        System.out.println("onrestart");
        try{
            selectedParentMessage = ParentMessageListActivity.parentMsgSharedPref.getString("SelectedParentMessage", "None");

            System.out.println("Selected Parent Message:"+selectedParentMessage);

        }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();

        }
        getListView().invalidateViews();
        adapter.notifyDataSetChanged();
    }

そして同じonPause()

4

4 に答える 4

2

解決した

@Override
    public void onResume(){
    super.onResume();
        adapter.clear();
        addItem();
    }

addItem()リスト項目をクラスに追加し、アダプタを生成してリストビューを設定する関数です。

于 2013-02-15T10:46:17.647 に答える
1

アダプターで使用したのと同じ変数を使用してアダプターの新しいインスタンスを作成し、アダプターをリストに再度設定するのはどうですか。

onResumeでこれを試してください:

adapter = new Setting_ActivityEntryAdapter(this, items);
setListAdapter(adapter);
于 2013-02-14T07:27:43.077 に答える
0

notifydatasetchange()使いのアダプターでlistview行うonStart()

于 2013-02-14T07:00:33.790 に答える
0

あれを呼べyourlistView.invalidateViews();

これを試して 。

ListAdapter la = listView.getAdapter();
                        if( la != null){
                            ((BaseAdapter)la).notifyDataSetChanged();


                }
于 2013-02-14T06:58:02.053 に答える