我已经尝试过使用
String mystring = getResources().getString(R.string.mystring);
我在本文How can I convert the android resources int to a string. eg.: android.R.string.cancel?中找到了相同的主题。但它在我的情况下不起作用。
这是我的代码:
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
}
}
答案 0 :(得分:1)
如果您无法访问Context
(例如通过Activity
,Service
,ContentProvider
或BroadcastReceiver
, 无法获取字符串资源。
如果您的类不是上述类之一且需要获取字符串资源,则必须将Context
传递给该类,以便它可以检索资源,或者传递该类已解决的资源。
答案 1 :(得分:0)
创建一个应用程序类,并在静态变量中添加一个保持引用。然后你可以在应用程序的任何地方访问上下文
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
}
}
然后,您可以在应用程序的任何位置访问此实例以获取上下文
#scroll {
overflow: auto
height: ?
}
答案 2 :(得分:0)
首先,通过你称之为电影对象的活动为电影类提供背景。
如果您从Main Activity打电话,您将不得不这样做:
public class MainActivty extends AppCompatActivity {
private static MainActivty obj;
onCreate() {
//usual functions
obj = MainActivity.this;
}
}
获得上下文后,只需尝试:
String mystring = context.getString(R.string.mystring);
或者,如果您使用我的MainActivty方法:
String mystring = MainActivty.obj.getResources().getString(R.string.mystring);