2011-06-30 56 views
0

四处串基本上我有一个独立的类,它不使用活动或服务。 该类中的一个函数启动一个新的Authenticator。在保护功能的Android

我在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 
} 

我通过了瓦尔地走入类,但怎么做我访问他们当我设置PasswordAuthentication。或者我可以直接从strings.xml访问它们?

回答

0

你如何创建MyConnection类的实例?

它应该是通过一个活动或服务,对不对?

然后,当您创建,传递当前活动

public class MyConnection { 

    private Activity activity; 

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

    //.... 

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

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

0

您可以将final修饰符添加到您的MyConnection()构造函数的参数中,这样您可以在调用PasswordAuthentication()时将它们用作参数。希望这可以帮助。

0

您需要将Context实例传递给您的类或单个方法。 Context实例可以是ActivityServiceContext的子类别的任何其他实例。您可以使用它访问系统资源:

class MyConnection 
{ 
    private final Context context; 

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

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