1

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

我的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());
    }
}
 }
4

2 回答 2

1

您必须首先创建您的 workEntryObject(它不是 C++)。像这样

public WorkEntryScreenActivity workEntryObject=new WorkEntryScreenActivity();

另外,我强烈推荐你阅读 Android Basics http://developer.android.com/guide/index.html

于 2012-06-13T19:07:15.537 回答
0

@biovamp 是正确的。看起来您有一个尝试调用方法的空引用。为了调用非静态方法,您需要该对象的实例。

从您的方法的命名来看,您可能正在尝试在应用程序的另一部分重用您的某些 UI。在 Android 中,实现这一点的方法是通过IntentsActivities。如果您不熟悉这些或如何使用它们,我强烈建议您研究它们。

于 2012-06-13T19:12:04.550 回答