gpt4 book ai didi

android - 抽屉导航刷新/重新加载

转载 作者:太空狗 更新时间:2023-10-29 12:44:53 26 4
gpt4 key购买 nike

我设法让我的 Nav-Drawer 和 Fragments 工作得很好。我面临的问题是,我希望用户将新的列表项添加到 Nav-Drawer 中,我正在使用 Dialog 执行此操作:

public void createAlert() {
//ALERT
AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Neue Liste erstellen");
//alert.setMessage("Message");

// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
// Do something with value!

dbHelper.createNewListItem(value, null);

}
});
}

我的抽屉导航看起来像这样:

    // Erstellt den neuen MenuAdapter aus der Klasse MenuListAdapter
MenuListAdapter mMenuAdapter = new MenuListAdapter(this, drawerTitles, drawerSubtitles, drawerIcons);

View footer = (View)getLayoutInflater().inflate(R.layout.drawer_list_header, null);
mDrawerList.addFooterView(footer);

mDrawerList.setAdapter(mMenuAdapter);

如何在对话框关闭后刷新 ListView (抽屉导航)。我找不到任何可行的解决方案。 notifyDataSetChanged 未定义,这些都不起作用:

mDrawerList.refreshDrawableState();
mDrawerList.invalidate();

有人知道解决方案吗?

更新:

这是我的重载方法:

for(int i = 0; i < cursor.getCount(); i++){
String listname = cursor.getString(cursor.getColumnIndex("listname"));
String listsubtitle = cursor.getString(cursor.getColumnIndex("subtitle"));
allListNames[i] = listname;
allListSubtitle[i] = listsubtitle;
cursor.moveToNext();
}

drawerTitles = allListNames;
drawerSubtitles = allListSubtitle;

mMenuAdapter = new MenuListAdapter(this, drawerTitles, drawerSubtitles, drawerIcons);
mDrawerList.setAdapter(mMenuAdapter);
mMenuAdapter.notifyDataSetChanged();

最佳答案

覆盖 onPrepareOptionsMenu 方法并在其中设置适配器。之后在您的 ListView 上调用 invalidateViews()

关于android - 抽屉导航刷新/重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com