0

в моем проекте, есть четыре кнопки сверху, а когда я нажимаю один, я просто показываю popubwindow, но как я могу обновить contentubwindow. как notviewerview notited. Я просто хочу обновить контент popubwindow без его увольнения и воссоздания. и в моем popubwindow есть список, и когда я что-то что-то меняю, я вызываю API-интерфейс notifyDataSetChanged() API-интерфейса listview, но я просто получил java.lang.UnsupportedOperationException. любой помогает спасибо!Обновите контекстное содержимое popupwindow без увольнения и воссоздания его

+0

Каждый раз, когда вы нажимаете на него, оно воссоздается правильно? Используете ли вы ListPopUpWindow? –

+0

Да, каждый раз, когда он увольняется и воссоздается, я просто использую обычный PopupWindow. – lightman1988

ответ

0

просто обновите адаптер для просмотра списка в popupwindow.

private List<String> data = new ArrayList<String>(); 
private ArrayAdapter<String> adapter; 
private Handler handler = new Handler(); 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    data.add("1"); 
    data.add("2"); 
    data.add("3"); 

    ListView listView = new ListView(this); 
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); 
    listView.setAdapter(adapter); 

    final PopupWindow popupWindow = new PopupWindow(this); 
    popupWindow.setFocusable(true); 
    popupWindow.setWidth(WindowManager.LayoutParams.WRAP_CONTENT); 
    popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); 
    popupWindow.setContentView(listView); 

    final Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      popupWindow.showAsDropDown(button); 

      handler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        data.add(String.valueOf(data.size() + 1)); 
        adapter.notifyDataSetChanged(); 
       } 
      }, 1000); 
     } 
    }); 
} 
+0

Я просто делаю это, но я просто получил java.lang.UnsupportedOperationException – lightman1988

+0

и в вашем коде каждый раз, когда вы нажимаете кнопку, он вызывает popubWindow.showAsDropDown (кнопка); и если это сработает, popubwindow снова рассеется и воссоздает. но спасибо – lightman1988

+0

После нажатия кнопки в течение 1 сек всплывающее окно будет обновляться без увольнения и воссоздания. –