我有两个课程如下,
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()访问,但它不起作用。请帮我解决这个问题。
谢谢。
答案 0 :(得分:1)
这些课程可以在您的主要活动中初始化,然后您可以对其进行评估。
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();
}
通过它的对象,你可以访问它的功能和方法。
答案 1 :(得分:0)
您也可以使用合成。将DateFormat类添加为活动中的变量。
答案 2 :(得分:0)
简单,
将Settings.java中的getDateFormat()声明为static:
即
public static getDateFormat()
{
...
...
}
现在在你的DateFormat.java中使用它的类名调用函数。
即。使用方法:
Settings.getDateFormat()
在你的DateFormat类中。
这是“静态”关键字的概念。
答案 3 :(得分:0)
我必须承认,我并不完全明白你要实现的目标。我有两种可能的解决方案,取决于getDateFormat()
的实现。
第一种情况是,您使用getDateFormat()
的每个类中都有不同的getFormattedDate()
方法。那你的班级
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
}
}