Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android layout 指定的子级已具有父级。必须调用removeView()_Android Layout_Android View - Fatal编程技术网

Android layout 指定的子级已具有父级。必须调用removeView()

Android layout 指定的子级已具有父级。必须调用removeView(),android-layout,android-view,Android Layout,Android View,出于某种原因,我不断收到以下错误: java.lang.IllegalStateException:指定的子级已具有父级。必须对子级的父视图调用removeView() 我正在使用以下代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listitem); //url is fetched from

出于某种原因,我不断收到以下错误:

java.lang.IllegalStateException:指定的子级已具有父级。必须对子级的父视图调用removeView()

我正在使用以下代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listitem);
    //url is fetched from another class
    readWebpage(imdbUrl);
}

private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {

    }

    @Override
    protected void onPostExecute(String result) {
        //textView.setText(result);
        displayMoviesList(result);
    }
}

public void readWebpage(String imdbUrl) {
}

public void displayMoviesList(String result) {
    JSONObject responseObj = null; 
    try {
        responseObj = new JSONObject(result);
        JSONObject Obj = responseObj.getJSONObject("results");
        JSONArray moviesListObj = Obj.getJSONArray("result");

        for(int i=0 ;i<moviesListObj.length();i++) {
            JSONObject e = moviesListObj.getJSONObject(i);
            cover[i] = e.getString("cover");
            title[i] = e.getString("title");
            year[i] = e.getString("year");
            director[i] = e.getString("director");
            rating[i] = e.getString("rating");
            details[i] = e.getString("details");
        }

        tl = (TableLayout) findViewById(R.id.main_table);
        imgView = (ImageView)findViewById(R.id.imageID);
        progressbar = (ProgressBar) findViewById(R.id.loadingBar);
        //new loadImageTask().execute(cover[i].toString());
        new loadImageTask().execute( URL);// it calls another function..
        TextView title = (TextView)findViewById(R.id.titleID);
        title.setText("TEXT");
        TableRow tr = new TableRow(this);
        tr.addView(imgView);
        tr.addView(title);
        tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,     LayoutParams.WRAP_CONTENT));
    } catch(JSONException e) {
        //Log.e("log_tag", "Error parsing data " + e.toString());
    }
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listitem);
//url是从另一个类获取的
阅读网页(imdbUrl);
}
私有类下载WebPagetTask扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
}
@凌驾
受保护的void onPostExecute(字符串结果){
//setText(结果);
显示电影列表(结果);
}
}
公共无效读取网页(字符串imdbUrl){
}
public void displayMoviesList(字符串结果){
JSONObject responseObj=null;
试一试{
responseObj=新的JSONObject(结果);
JSONObject Obj=responseObj.getJSONObject(“结果”);
JSONArray moviesListObj=Obj.getJSONArray(“结果”);

对于(int i=0;i解决方案是,我们要么在.xml文件中定义行,要么在.java文件中定义行。我在java文件中动态添加行,并使用addView。因此在.xml文件中,我们不能添加另一个视图(我们不应该为相同的视图添加行).

请更具体地说明发生了什么错误。例如,您收到的错误消息是什么?抛出的是哪一行?等等。错误出现在以下行:tr,addView(imgView);错误是:java.lang.IllgalStateException:指定的子级已经有父级。您必须调用removeView()在孩子的父母身上view@TroyAlford标记。请您帮忙。错误在displayMoviesList中。我更新了您的代码以帮助您获得更多关注-不幸的是,我对
Android
一无所知-因此我无法提供太多帮助。