在受保护的功能Android中获取字符串

时间:2011-06-30 08:27:36

标签: android

基本上我有一个独立的类,它不使用Activity OR Service。 该类中的函数启动一个新的Authenticator。

我在strings.xml文件中有一个字符串,我想访问它 寻找最好的方法

示例代码

class MyConnection(){

 String username;
 String pwd;
 String strurl;
  public MyConnection(String usernameIN, String pwdIN, String urlIN){
      this.username = usernameIN;
      this.pwd = pwdIN;
      this.strurl = urlIN
  }
 public void
 URL url = null;

 try {
    url = new URL(this.strURL);
    URLConnection urlConn = null;
    Authenticator.setDefault(new Authenticator()){

         protected PasswordAuthentication getPasswordAuthentication()(
                // I want my vars from strings.xml here
                return new PasswordAuthentication(strUsername, strPwd.toCharArray());
         }
    });
  urlCOnn = url.openConnection();
  //Rest of the code, including CATCH
}

我将vars传递到了类中,但是当我设置PasswordAuthentication时如何访问它们。或者我可以直接从strings.xml ???

访问它们

3 个答案:

答案 0 :(得分:0)

如何创建MyConnection类的实例?

应该通过活动或服务,对吗?

然后在创建它时,传递当前的活动

public class MyConnection {

    private Activity activity;

    public MyConnection(Activity a) {
        this.activity = a;
    }

    //....

    private void method() {
        activity.getResources().getString(R.string....);
    }
}

编辑:我没有看到你已经有了构造函数。然后将参数添加到现有参数。

答案 1 :(得分:0)

您可以在final构造函数的参数中添加MyConnection()修改器,这样您就可以将它们用作PasswordAuthentication()调用中的参数。希望这会有所帮助。

答案 2 :(得分:0)

您需要将Context个实例传递给您的班级或个人方法。 Context实例可以是ActivityService的实例,也可以是Context的子类。然后,您可以使用它来访问系统资源:

class MyConnection
{
    private final Context context;

    public MyConnection( Context context )
    {
        this.context = context;
    }

    .
    .
    .
    public void someMethod()
    {
        String str = context.getResources().getString ( R.string.myString );
    }
}