Android 如何从另一个类调用一个类中的函数?
我试图通过创建一个类的对象,从另一个类调用一个类中存在的函数。不知怎么的,它不起作用了。新活动未加载 我的java代码:Android 如何从另一个类调用一个类中的函数?,android,android-intent,Android,Android Intent,我试图通过创建一个类的对象,从另一个类调用一个类中存在的函数。不知怎么的,它不起作用了。新活动未加载 我的java代码: public class MessagesActivity extends TabActivity { public WorkEntryScreenActivity workEntryObject = new WorkEntryScreenActivity() ; public void AddWorkEntryClick(View v) {
public class MessagesActivity extends TabActivity {
public WorkEntryScreenActivity workEntryObject = new WorkEntryScreenActivity() ;
public void AddWorkEntryClick(View v) {
workEntryObject.newWorkEntry();
}
}
另一类:
public class WorkEntryScreenActivity extends Activity {
public void newWorkEntry() {
try {
Intent i = new Intent(this, WorkEntryActivity.class);
i.putExtra("CurDate", mDateDisplay.getText());
i.putExtra("DD", String.valueOf(mDay));
i.putExtra("MM", String.valueOf(mMonth));
i.putExtra("YYYY", String.valueOf(mYear));
startActivity(i);
finish();
} catch (Exception e) {
System.out.println("Exception" + e.getStackTrace());
Log.d(TAG, "Exception" + e.getStackTrace());
}
}
}
您必须首先创建workEntryObject(它不是C++)。像这样
public WorkEntryScreenActivity workEntryObject=new WorkEntryScreenActivity();
另外,我高度推荐您阅读Android基础知识
您必须首先创建workEntryObject(它不是C++)。像这样
public WorkEntryScreenActivity workEntryObject=new WorkEntryScreenActivity();
另外,我高度推荐您阅读Android基础知识
@biovamp是正确的。看起来您有一个试图调用方法的空引用。为了调用非静态方法,您需要该对象的实例
从方法的命名来看,您可能正试图在应用程序的另一部分中重用某些UI。在Android中,实现这一点的方法是通过和。如果你不熟悉它们或者不知道如何使用它们,我强烈建议你研究它们。@biovamp是正确的。看起来您有一个试图调用方法的空引用。为了调用非静态方法,您需要该对象的实例
从方法的命名来看,您可能正试图在应用程序的另一部分中重用某些UI。在Android中,实现这一点的方法是通过和。如果您不熟悉这些或不知道如何使用它们,我强烈建议您研究它们。可能相关,w.r.t.回答..您正在创建一个活动实例(好像它是普通Java)的事实表明您缺少Android基础知识。首先阅读《基础指南》(biovamp指向链接)。@Arhimed我是android新手,从那时起我就一直在阅读关于它的文章,甚至有机会阅读。尽管我仍然无法找到调用另一个类中存在的函数的方法。我遇到了一些人们创建活动实例的例子,就像我在切换选项卡时注意到的那样,大多数人使用
MyTabActivity myTab=(MyTabActivity)getParent()代码>我甚至尝试了以下操作:public void AddWorkEntryClick(视图v){WorkEntryScreenActivity object=(WorkEntryScreenActivity)getParent();object.newWorkEntry();}
不起作用!有什么建议吗?@Harsh:在大多数情况下(我不熟悉TabActivity),活动不能直接通信(就像在标准Java中那样),但它们可以通过Activity.startActivityForResult()
方法进行通信。可能是相关的,w.r.t.回答..事实上你正在创建一个活动实例(好像它是普通的Java)告诉你缺少Android的基础知识。首先阅读《基础指南》(biovamp指向链接)。@Arhimed我是android新手,从那时起我就一直在阅读关于它的文章,甚至有机会阅读。尽管我仍然无法找到调用另一个类中存在的函数的方法。我遇到了一些人们创建活动实例的例子,就像我在切换选项卡时注意到的那样,大多数人使用MyTabActivity myTab=(MyTabActivity)getParent()代码>我甚至尝试了以下操作:public void AddWorkEntryClick(视图v){WorkEntryScreenActivity object=(WorkEntryScreenActivity)getParent();object.newWorkEntry();}
不起作用!有什么建议吗?@Harsh:在大多数情况下(我不熟悉TabActivity),活动不能直接通信(就像在标准Java中那样),但它们可以通过Activity.startActivityForResult()
方法进行通信。哇!我把它弄丢了。无论如何,谢谢。现在,它不会给我任何错误,但不会加载新活动要创建新活动,请使用当前活动的startActivity()
方法。你可以在这里读到这个哇!我把它弄丢了。无论如何,谢谢。现在,它不会给我任何错误,但不会加载新活动要创建新活动,请使用当前活动的startActivity()
方法。你可以在这里读到