【问题标题】:Getting error while changing to string-array from string in text field of activity xml file in android studio在android studio中从activity xml文件的文本字段中的字符串更改为字符串数组时出错
【发布时间】:2016-01-28 12:46:12
【问题描述】:

我想在每次打开我的 android 应用程序时显示随机字符串。使用stackoverflow,我能够编写一个从资源文件中获取随机字符串的java程序。

    package com.example.krishna.quotes;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.Random;
import android.content.res.Resources;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {

    private String[] myString;
    private static final Random rgenerator = new Random();


        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


            Resources res = getResources();

            myString = res.getStringArray(R.array.quotes_array);

            String q = myString[rgenerator.nextInt(myString.length)];

            TextView tv = (TextView) findViewById(R.id.text);
            tv.setText(q);

    }
}

当我在活动 xml 文件的文本字段中使用字符串类型时,应用程序的构建没有任何错误。

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.krishna.quotes.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string-array/quotes_array"
        android:textAlignment="center"
        android:textSize="23sp"
        android:gravity="center|center_horizontal"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

但由于我不希望每次打开我的应用程序时只显示一个字符串,所以我将所有字符串收集到一个字符串数组中。

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="quotes_array">
        <item>@string/quote1</item>
        <item>@string/quote2</item>
        <item>@string/quote3</item>
        <item>@string/quote4</item>
        <item>@string/quote5</item>
        <item>@string/quote6</item>
        <item>@string/quote7</item>
        <item>@string/quote8</item>
        <item>@string/quote9</item>
        <item>@string/quote10</item>
        <item>@string/quote11</item>
        <item>@string/quote12</item>
        <item>@string/quote13</item>
        <item>@string/quote14</item>
        <item>@string/quote15</item>

    </string-array>
</resources>

更改活动 xml 文件中的文本字段出现以下错误:

错误:(15, 23) 未找到与给定名称匹配的资源(在“文本”处,值为“@string-array/quotes_array”)。 错误:任务 ':app:processDebugResources' 执行失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/krishna/Android/Sdk/build-tools/23.0.2/aapt'' 完成非零退出值 1

问题很可能是字符串数组类型,android studio 无法处理。如何克服这个问题来构建我的第一个 android 应用程序?我很高兴向我的朋友们炫耀我的应用程序,但是这个小错误正在阻碍我。谢谢您的帮助。请不要叫我菜鸟

【问题讨论】:

  • 我认为需要使用android:text="@array/quotes_array"

标签: java android arrays xml string


【解决方案1】:

而不是写

字符串数组名 = "quotes_array"

在您的 Strings.xml 中

使用

数组名="quotes_array"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2013-01-24
    相关资源
    最近更新 更多