Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将字符串资源转换为字符串_Android_String_Resources - Fatal编程技术网

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);

您可以在应用程序类中创建资源实例,并在任何地方访问它,因为应用程序类在应用程序运行之前都是活动的。