Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 view和textview在充气和返回时的混淆_Android - Fatal编程技术网

android view和textview在充气和返回时的混淆

android view和textview在充气和返回时的混淆,android,Android,如果我尝试返回textview(tv),它会给我运行时错误,如果我返回view(v),它工作正常。有人能告诉我原因吗。您观察到运行时错误,因为Android Framework在您尝试将textview视图添加到活动的视图层次结构时引发了非法状态异常。换句话说,您正试图为已经有父视图(某种布局)的视图(TextView)设置新的父视图。Android框架不允许自动更改父级,并引发异常 尝试添加以下行-似乎这将帮助您: package com.test1; import android.app.

如果我尝试返回textview(tv),它会给我运行时错误,如果我返回view(v),它工作正常。有人能告诉我原因吗。

您观察到运行时错误,因为Android Framework在您尝试将textview视图添加到活动的视图层次结构时引发了非法状态异常。换句话说,您正试图为已经有父视图(某种布局)的视图(TextView)设置新的父视图。Android框架不允许自动更改父级,并引发异常

尝试添加以下行-似乎这将帮助您:

package com.test1;

import android.app.Activity;
import android.app.ExpandableListActivity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

public class Test1Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        c1 c1obj = new c1();
        setContentView(c1obj.m1());
    }

    public class c1  
    {
        public View m1()
        {
            LayoutInflater i = (LayoutInflater) Test1Activity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View v = i.inflate(R.layout.main, null);

            TextView tv = (TextView) v.findViewById(R.id.textView1);

            tv.setText("Hello world !!!");

            return v;
        }
    }
}

你为什么这么做?这对我来说毫无意义。只需在
onCreate(…)中使用
setContentView(R.layout.main)
。这是一个小片段,它复制了我在实际项目中遇到的确切错误。但如果您看到代码,我没有设置任何视图,我将直接在setcontentview中设置textview。方法setcontentview将尝试设置您通过参数传递到activity视图层次结构内部结构的视图
        ViewGroup vg = (ViewGroup)tv.getParent();
        vg.removeView(tv);