Android 如何从另一个类调用一个类中的函数?

Android 如何从另一个类调用一个类中的函数?,android,android-intent,Android,Android Intent,我试图通过创建一个类的对象,从另一个类调用一个类中存在的函数。不知怎么的,它不起作用了。新活动未加载 我的java代码: public class MessagesActivity extends TabActivity { public WorkEntryScreenActivity workEntryObject = new WorkEntryScreenActivity() ; public void AddWorkEntryClick(View v) {

我试图通过创建一个类的对象,从另一个类调用一个类中存在的函数。不知怎么的,它不起作用了。新活动未加载

我的java代码:

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()
方法。你可以在这里读到