Android 将字符串资源转换为字符串
我已经试着用过了Android 将字符串资源转换为字符串,android,string,resources,Android,String,Resources,我已经试着用过了 String mystring = getResources().getString(R.string.mystring); 我在这篇文章中发现了相同的主题。但这在我的情况下不起作用 这是我的代码: public class Film{ private int image; private String name; private String schedule; private String description; publi
String mystring = getResources().getString(R.string.mystring);
我在这篇文章中发现了相同的主题。但这在我的情况下不起作用
这是我的代码:
public class Film{
private int image;
private String name;
private String schedule;
private String description;
public Film() {
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
...
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public class FilmList {
public static ArrayList<Film> getFilms(){
ArrayList<Film>films=new ArrayList<>();
Film film=null;
film =new Film();
film.setName(getResources().getString(R.string.name1));
film.setImage(R.drawable.img1);
film.setDescription(getResources().getString(R.string.desc1));
films.add(film);
film =new Film();
film.setName(getResources().getString(R.string.name2));
film.setImage(R.drawable.img2);
film.setDescription(getResources().getString(R.string.desc2));
films.add(film);
return films
}
}
公共级电影{
私有int图像;
私有字符串名称;
私有字符串调度;
私有字符串描述;
公共电影(){
}
public int getImage(){
返回图像;
}
公共void setImage(int-image){
这个图像=图像;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
...
公共字符串getDescription(){
返回说明;
}
公共void集合描述(字符串描述){
this.description=描述;
}
}
公共类电影名单{
公共静态数组列表getFilms(){
ArrayListfilms=新的ArrayList();
Film=null;
菲林=新菲林();
film.setName(getResources().getString(R.string.name1));
film.setImage(R.drawable.img1);
film.setDescription(getResources().getString(R.string.desc1));
电影。添加(电影);
菲林=新菲林();
film.setName(getResources().getString(R.string.name2));
film.setImage(R.drawable.img2);
film.setDescription(getResources().getString(R.string.desc2));
电影。添加(电影);
返回电影
}
}
如果您无权访问上下文
(例如,通过活动
、服务
、内容提供者
或广播接收者
),则无法获得字符串资源
如果您有一个类不是上述任何一个类,并且它需要获取字符串资源,那么您必须将
上下文
传递给该类,以便该类可以检索资源,或者将该类传递给已解析的资源。创建一个应用程序类,并在静态变量中添加一个保持其引用。然后,您可以访问应用程序中的任何位置的上下文
public class MyApp extends Application {
private static AppLWP instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
}
public static ArrayList<Film> getFilms(){
ArrayList<Film>films=new ArrayList<>();
Film film=null;
film =new Film();
film.setName(MyApp.instance.getResources()
.getString(R.string.name1));
film.setImage(R.drawable.img1);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc1));
films.add(film);
film =new Film();
film.setName(MyApp.instance.getResources()
.getString(R.string.name2));
film.setImage(R.drawable.img2);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc2));
films.add(film);
return films
}
}
然后,您可以在应用程序中的任何位置访问此实例的上下文
public class MyApp extends Application {
private static AppLWP instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
}
public static ArrayList<Film> getFilms(){
ArrayList<Film>films=new ArrayList<>();
Film film=null;
film =new Film();
film.setName(MyApp.instance.getResources()
.getString(R.string.name1));
film.setImage(R.drawable.img1);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc1));
films.add(film);
film =new Film();
film.setName(MyApp.instance.getResources()
.getString(R.string.name2));
film.setImage(R.drawable.img2);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc2));
films.add(film);
return films
}
}
publicstaticarraylistgetfilms(){
ArrayListfilms=新的ArrayList();
Film=null;
菲林=新菲林();
film.setName(MyApp.instance.getResources()
.getString(R.string.name1));
film.setImage(R.drawable.img1);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc1));
电影。添加(电影);
菲林=新菲林();
film.setName(MyApp.instance.getResources()
.getString(R.string.name2));
film.setImage(R.drawable.img2);
film.setDescription(MyApp.instance.getResources()
.getString(R.string.desc2));
电影。添加(电影);
返回电影
}
}
首先,通过调用电影对象的活动为课堂电影提供上下文
如果您从主要活动打电话,您必须执行以下操作:
public class MainActivty extends AppCompatActivity {
private static MainActivty obj;
onCreate() {
//usual functions
obj = MainActivity.this;
}
}
了解了上下文后,只需尝试以下操作:
String mystring = context.getString(R.string.mystring);
或者,如果你破坏了我的主要活动方法:
String mystring = MainActivty.obj.getResources().getString(R.string.mystring);
您可以在应用程序类中创建资源实例,并在任何地方访问它,因为应用程序类在应用程序运行之前都是活动的。