如何在android中访问方法?
我有两门课,如下所示 Settings.java如何在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
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 dogetDateFormat()
需要在活动中,还是可以在其他类中移动?我尝试了您建议的方法,但仍然无法从令牌“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
}