我有两个java类,其中一个是活动类,现在来自该活动类,我想调用第二个类的函数,它不是一个活动类。但是当我在Font类中调用函数GetRobotoRegularFont时,它向我显示一个错误“引起:
java.lang.NullPointerException
at com.ojaswi.font.Font.GetRobotoRegularFont(Font.java:16)
at com.ojaswi.bookingscapemob.LoginActivity.onCreate(LoginActivity.java:29)
“..两个java文件的代码是..请任何人帮我回答..
第一个Java文件的代码
public class LoginActivity extends Activity {
EditText email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
email = (EditText)findViewById(R.id.edtTextUname);
email.setTypeface(new Font().GetRobotoRegularFont());
}
}
第二个Java文件的代码
public class Font {
Typeface tf;
Context myContext;
public final Typeface GetRobotoRegularFont() {
String fontPath = "fonts/Roboto-Regular.ttf";
tf = Typeface.createFromAsset(myContext.getAssets(), fontPath);
return tf;
}
}
答案 0 :(得分:3)
你永远不会在Font类中设置Context。
选项:
答案 1 :(得分:1)
在LoginActivity中以这种方式编写
email.setTypeface(new Font().GetRobotoRegularFont(this));
然后在Font类
中public class Font {
Typeface tf;
Context myContext;
public final Typeface GetRobotoRegularFont(Context context) {
myContext = context;
String fontPath = "fonts/Roboto-Regular.ttf";
tf = Typeface.createFromAsset(myContext.getAssets(), fontPath);
return tf;
}
答案 2 :(得分:0)
假设文件位于assets文件夹中,您可以执行以下操作。
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/verdana.ttf");
email = (EditText)findViewById(R.id.edtTextUname);
email.setTypeface(tf,Typeface.BOLD);