1

我创建了一个类

public class FormActivity extends Activity 
{
    TextView tv =new TextView(this);
    GridLayout gl=new GridLayout(this);

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        paint();
    }

    public void paint()
    {
        tv.setText("In new File");
        gl=(GridLayout) findViewById(R.id.gl);
        gl.addView(tv);
    }
}

我想paint()从不同的类(同一个包中的java文件)访问该方法。我试过这个:

public class FileSystemDemoActivity extends Activity 
{

    FormActivity f1=new FormActivity();
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        f1.paint();
    }
}

但这不起作用。模拟器给出了不幸的停止错误。请帮我。

4

2 回答 2

0

您得到的错误可能是因为gl为空。您无法访问 Activity 的视图,因为它尚未正确初始化。要从另一个活动开始并显示 FormActivity startActivity(),它onCreate会被调用并最终调用你的“paint”方法。

于 2012-06-27T08:06:39.497 回答
0
sorry.i have not understood can you give an example? 

您不应该尝试访问其他 Activity 功能

1-您不应该尝试在您的活动中创建其他活动的实例。

2- findViewById(R.id.gl) 与当前活动布局链接,它将在编写活动代码的特定活动中搜索 id。

...

 public class FileSystemDemoActivity extends Activity 
        {
        FormActivity f1=new FormActivity();
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            f1.paint();
        }

            public void paint()
            {
                 tv.setText("In new File");
                 gl=(GridLayout) findViewById(R.id.gl);
                 gl.addView(tv);
            }

        }  
于 2012-06-27T08:39:29.730 回答