gpt4 book ai didi

android 从 alertdialog 中删除 View

转载 作者:行者123 更新时间:2023-11-30 02:12:07 28 4
gpt4 key购买 nike

您好,我有一个 MainActivity 类,其中有一个由 rss 项目填充的 ListView 。当我单击项目列表时,我的应用程序会显示一个警报对话框,我可以在消息框中看到项目详细信息。我的问题是,在我关闭它并打开一个新项目时显示 alertdialog 之后,我的应用程序崩溃并给我这个错误:

FATAL EXCEPTION: main.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

这是我的java类:

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

listview = (ListView) findViewById(R.id.listView);

wv = new WebView(this);

try {
url = new URL("http://www.unikore.it/index.php/ingegneria-informatica-home?format=feed");
} catch (MalformedURLException e) {
e.printStackTrace();
}

new ReadRssTask().execute(url);

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
OptionDialog = new AlertDialog.Builder(MainActivity.this).create();
OptionDialog.setTitle(listview.getItemAtPosition(position).toString());
s = rssItems.get(position).getDescription();
if(s.contains("href=")){
s.substring(0,s.indexOf("</div>"));
wv.loadData(s, "text/html", "UTF-8");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
OptionDialog.setView(wv);
}else {
OptionDialog.setMessage(s.replaceAll("<[^>]*>", ""));
}
OptionDialog.show();
}
});
}

我尝试使用 OptionDialog.dismiss() 方法,但应用还是崩溃了。

谢谢

最佳答案

在访问对象之前移动 WebView 的实例化。

s = rssItems.get(position).getDescription();
if(s.contains("href=")){
wv = new WebView(this);
wv.loadData(s, "text/html", "UTF-8");
// other code

关于android 从 alertdialog 中删除 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947911/

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