我有这个MAS MAS ..
public class Canvastutorial extends Activity {
/** Called when the activity is first created. */
public int MASK=R.drawable.face00;
public void setMask(int value)
{
MASK=value;
}
它的值在同一个类Canvastutorial中改变为
public void onClick(DialogInterface dialog, int item)
{
if(items[item]=="Mask 1")
{
setMask(R.drawable.face00);
}
else if(items[item]=="Mask 2")
{
setMask(R.drawable.face01);
}
else if(items[item]=="Mask 3")
{
setMask(R.drawable.face02);
}
else if(items[item]=="Mask 4")
{
setMask(R.drawable.face03);
}
else if(items[item]=="Mask 5")
{
setMask(R.drawable.face04);
}
我想在其他类
中使用这个MASKpublic class Panel extends SurfaceView implements SurfaceHolder.Callback{
我无法这样做..到目前为止,我试图将MASK称为 Canvastutorial.ct = new Canvastutorial(); 然后使用ct.MASK;
但这迫使关闭申请..
任何想法怎么做?
答案 0 :(得分:1)
一种方法是使用静态int和静态方法。可以使用Canvastutorial.MASK和Canvastutorial.setMask(...)从任何地方访问它们。可能不是最干净的方法,但它会起作用。
您也可以保留现在的代码,但是创建该类的静态实例,并使用Canvastutorial.getInstance()来访问它(而不是创建新类)。
答案 1 :(得分:0)
另一种方法是使用ApplicationContext()(本质上是一个全局上下文) 您在清单中声明了这样的应用程序上下文类:
<application
android:name=".model.AppModel">
</application>
然后从Application类扩展以生成自定义ApplicationContext对象,如下所示:
public class AppModel extends Application {
private User user;
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
无论何时需要访问对象,都可以执行以下操作:
AppModel appModel = ((AppModel) getApplicationContext());
appModel.setUser(user);
您可以随时随地访问您的appModel。