Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中访问方法?_Android_Class_Methods_Android Activity - Fatal编程技术网

如何在android中访问方法?

如何在android中访问方法?,android,class,methods,android-activity,Android,Class,Methods,Android Activity,我有两门课,如下所示 Settings.java public class Settings extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.general_settings); // some co

我有两门课,如下所示

Settings.java

public class Settings extends Activity{
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.general_settings);

              // some code here

   }

public String getDateFormat() {

    //Some code here

   }
}
二等舱,

DateFormat.java

public class DateFormat {

private DateDisplayFormat(){}

public static final String DEFAULT = "dd-MM-yyyy";
public static final String MON_DEFAULT = "MM-dd-yyyy";

    // I want to access the method here
public static String getFormattedDate(Calendar calendar){
    return getFormattedDate(DEFAULT, calendar.getTime());
}

public static String getFormattedDate(Date date){
    return getFormattedDate(DEFAULT, date);
}

public static String getFormattedDate(String format, Calendar calendar){
    return getFormattedDate(format, calendar.getTime());
}

public static String getFormattedDate(String format, Date d){
    SimpleDateFormat formatter = new SimpleDateFormat(format);
    return formatter.format(d);
}

}
我的疑问是,我想从第二个类访问getDateFormat()方法以获得结果字符串。我尝试通过Settings.getDateFormat()访问,但无效。请帮我解决这个问题


谢谢。

你也可以用作文。在活动中添加DateFormat类作为变量。

简单

将Settings.java中的getDateFormat()声明为静态:

i、 e

现在,在DateFormat.java中,使用其类名调用函数

i、 e.使用:

Settings.getDateFormat()
在DateFormat类中


这是“静态”关键字的概念。

这些类可以在您的主要活动中初始化,您可以通过这些类对其进行评估

public class Settings extends Activity{
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.general_settings);

              // some code here
            DateFormat dateformate_class=new  DateFormat();

 }

通过它的对象,你可以访问它的函数和方法。

我必须承认,我没有完全理解你想要实现什么。我有两种可能的解决方案,这取决于
getDateFormat()
的实现。 第一种情况是,在使用
getFormattedDate()
的每个类中,都有不同的
getDateFormat()
方法。那你们班呢

public class GenericActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.generic_activity);

       // some code here

       DateFormat.getFormattedDate(this.getDateFormat(), genericCalendar);

    }

    public String getDateFormat() {

        //Code customized for this GenericActivity

    }
}
否则,如果只需要一个
getDateFormat()
的实现,则应将其放入DateFormat类,如下所示:

public class DateFormat {

    private DateFormat() {
    }

    public final String DEFAULT = "dd-MM-yyyy";
    public final String MON_DEFAULT = "MM-dd-yyyy";

    // I want to access the method here
    public String getFormattedDate(Calendar calendar) {
        return getFormattedDate(DEFAULT, calendar.getTime());
    }

    public String getFormattedDate(Date date) {
        return getFormattedDate(DEFAULT, date);
    }

    public String getCustomFormattedDate(Calendar calendar) {
        return getFormattedDate(this.getDateFormatFromDB(), calendar.getTime());
    }

    private String getFormattedDate(String format, Date d) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        return formatter.format(d);
    }

    private String getDateFormatFromDB() {
        //DB access code here
    }

}

DateFormat
类作为活动类的内部类我想从应用程序的各个部分访问DateFormat类,因此我分别创建了它。在
getDateFormat()
中你有什么代码?那么我能有另一种解决方案吗?Mocialov Boris?@PrakashJackson do
getDateFormat()
需要在活动中,还是可以在其他类中移动?我尝试了您建议的方法,但仍然无法从令牌“getDateFormat”上的第二个类语法错误访问getDateFormat(),此标记后面应为标识符--这是我得到的错误消息。我认为您需要使用旧方法执行此操作:Setting s=new Setting();一旦这个对象被创建,你就可以调用它的成员函数,也就是s.getDateFormat(),我确信这会起作用。在这种情况下,您可能需要删除static关键字。请尝试以下操作:Settings.class.getDateFormat()?谢谢您的回答,但上面的回答不起作用。我只需要从Settings.java类或DateFormat.java类从数据库中检索字符串。您能告诉我如何从DateFormat类使用此对象访问该方法吗@柯蒂斯·内尔希特将是一个有着良好关系的人。设置(活动)具有数据格式。'专用数据格式数据格式;'
public class DateFormat {

    private DateFormat() {
    }

    public final String DEFAULT = "dd-MM-yyyy";
    public final String MON_DEFAULT = "MM-dd-yyyy";

    // I want to access the method here
    public String getFormattedDate(Calendar calendar) {
        return getFormattedDate(DEFAULT, calendar.getTime());
    }

    public String getFormattedDate(Date date) {
        return getFormattedDate(DEFAULT, date);
    }

    public String getCustomFormattedDate(Calendar calendar) {
        return getFormattedDate(this.getDateFormatFromDB(), calendar.getTime());
    }

    private String getFormattedDate(String format, Date d) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        return formatter.format(d);
    }

    private String getDateFormatFromDB() {
        //DB access code here
    }