从android studio中的string.xml获取信息不起作用

时间:2016-11-09 09:37:15

标签: java android xml

我在 mainActivity.java

中写了这一行
String url = getString(R.string.url2);

和ind strings.xml 它看起来像这样:

<string name="url2">https://someurl.com/index.html</string>

但是我收到错误,如果我在mainActivity.java中写这样的话

String url = "https://someurl.com/index.html";

然后它工作正常,但我需要它在strings.xml中才能轻松更改。

如何让它发挥作用?

编辑:我试过这些:

String url = this.getString(R.string.url2);
String url = getResources().getString(R.string.url2);

他们不起作用。错误我是它没有得到网址,只是说 R.string.url2 不会导致我的网址中的网址。

更新:我发现了错误,我写的是这样的:

public class MainActivity extends ListActivity {

    String url = this.getString(R.string.url2);

    @Override
    protected void onCreate(Bundle savedInstanceState) {

但我应该这样写:

public class MainActivity extends ListActivity {

    String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        url = this.getString(R.string.url2);

感谢那些试图帮助我解决问题的人。

3 个答案:

答案 0 :(得分:3)

如果代码不起作用,那么您的代码应该可以正常工作,请尝试这样

技巧1

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="metadata">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="AVU" minOccurs="0" maxOccurs="unbounded">
     <xs:complexType>
      <xs:sequence>

       <xs:element name="Target" minOccurs="0">
        <xs:simpleType>
         <xs:restriction base="xs:string">
          <xs:maxLength value="1088"/>
         </xs:restriction>
        </xs:simpleType>
       </xs:element>

       <xs:element name="Attribute">
        <xs:simpleType>
         <xs:restriction base="xs:string">
          <xs:minLength value="1"/>
          <xs:maxLength value="2700"/>
         </xs:restriction>
        </xs:simpleType>
       </xs:element>

       <xs:element name="Value">
        <xs:simpleType>
         <xs:restriction base="xs:string">
          <xs:pattern value="http://.*"/>
          <xs:maxLength value="2700"/>
         </xs:restriction>
        </xs:simpleType>
       </xs:element>

       <xs:element name="Unit">
        <xs:simpleType>
         <xs:restriction base="xs:string">
          <xs:pattern value="uri|string|integer|date|float"/>
          <xs:maxLength value="250"/>
         </xs:restriction>
        </xs:simpleType>
       </xs:element>

      </xs:sequence>
      <xs:assert test="Unit = 'uri'" />
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

技巧2

String url = getResources().getString(R.string.url2);

希望它会对你有所帮助。

答案 1 :(得分:0)

xml代码<string name="kms">KMs:</string>

您可以使用此

获取字符串
String name=getResources().getString(R.string.kms);

答案 2 :(得分:0)

如果您尝试在Activity子类的方法中执行此操作,请执行以下操作:

url = new URL(getString(R.string.url2));

或者您可以尝试使用getResources()

来自https://stackoverflow.com/a/5888219/4758255

在字符串中使用url的另一个相关链接:

  1. URL in String resource xml
  2. How to properly reference the Strings.xml file, android
  3. Android: How store url in string.xml resource file?
  4. How to put the url on string.xml in android?