в моем проекте, есть четыре кнопки сверху, а когда я нажимаю один, я просто показываю popubwindow, но как я могу обновить contentubwindow. как notviewerview notited. Я просто хочу обновить контент popubwindow без его увольнения и воссоздания. и в моем popubwindow есть список, и когда я что-то что-то меняю, я вызываю API-интерфейс notifyDataSetChanged() API-интерфейса listview, но я просто получил java.lang.UnsupportedOperationException. любой помогает спасибо!Обновите контекстное содержимое popupwindow без увольнения и воссоздания его
ответ
просто обновите адаптер для просмотра списка в 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);
}
});
}
Я просто делаю это, но я просто получил java.lang.UnsupportedOperationException – lightman1988
и в вашем коде каждый раз, когда вы нажимаете кнопку, он вызывает popubWindow.showAsDropDown (кнопка); и если это сработает, popubwindow снова рассеется и воссоздает. но спасибо – lightman1988
После нажатия кнопки в течение 1 сек всплывающее окно будет обновляться без увольнения и воссоздания. –
Каждый раз, когда вы нажимаете на него, оно воссоздается правильно? Используете ли вы ListPopUpWindow? –
Да, каждый раз, когда он увольняется и воссоздается, я просто использую обычный PopupWindow. – lightman1988