我创建了一个类
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);
}
}
我希望从另一个类(同一个包中的java文件)访问paint()
方法。
我试过这个:
public class FileSystemDemoActivity extends Activity
{
FormActivity f1=new FormActivity();
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
f1.paint();
}
}
但这不起作用。不幸的是,模拟器停止了错误。请帮帮我。
答案 0 :(得分:0)
您得到的错误可能是因为gl
为空。您无法访问活动视图,因为它尚未正确初始化。要从另一个活动开始并显示FormActivity,请使用startActivity()
,并调用其onCreate
并最终调用您的'paint'方法。
答案 1 :(得分:0)
sorry.i have not understood can you give an example?
您不应该尝试以
的形式访问其他活动功能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);
}
}