Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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_Xml_Arrays_Sharedpreferences - Fatal编程技术网

android:从字符串数组中获取项目,并在文本视图中逐个显示

android:从字符串数组中获取项目,并在文本视图中逐个显示,android,xml,arrays,sharedpreferences,Android,Xml,Arrays,Sharedpreferences,当我写标题时,我需要一些帮助,从字符串数组中获取项目,并在文本视图中逐个显示。我有代码,可以在列表视图中获取所有项目,但每次我都需要在文本视图中逐个显示它们。这里随机显示我的代码,很抱歉我的英语不好 ,无论如何谢谢你的帮助 public class MainActivity extends ListActivity { String[] mTestArray; /** Called when the activity is first created. */ @Overrid

当我写标题时,我需要一些帮助,从字符串数组中获取项目,并在文本视图中逐个显示。我有代码,可以在列表视图中获取所有项目,但每次我都需要在文本视图中逐个显示它们。这里随机显示我的代码,很抱歉我的英语不好 ,无论如何谢谢你的帮助

public class MainActivity extends ListActivity {

String[] mTestArray;

    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        // Create an ArrayAdapter that will contain all list items
        ArrayAdapter<String> adapter;

        mTestArray =   getResources().getStringArray(R.array.planets_array);    

        /* Assign the name array to that adapter and 
        also choose a simple layout for the list items */ 
        adapter = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1,
                mTestArray);

        // Assign the adapter to this ListActivity
        setListAdapter(adapter);
    }
}
public类MainActivity扩展了ListActivity{
字符串[]mTestArray;
/**在首次创建活动时调用*/
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建将包含所有列表项的ArrayAdapter
阵列适配器;
mTestArray=getResources().getStringArray(R.array.planets\u数组);
/*将名称数组分配给该适配器,然后
还要为列表项选择一个简单的布局*/
适配器=新阵列适配器(
这
android.R.layout.simple\u list\u item\u 1,
mTestArray);
//将适配器分配给此ListActivity
setListAdapter(适配器);
}
}
XML文件:

<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"
    tools:context=".MainActivity" >

    <TextView

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@array/planets_array"
/>
</RelativeLayout>

和字符串数组文件:

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

水星
维纳斯
土
火星

好的,通过评论,我理解了您的需求,并编辑了我的答案。您希望在文本视图中随机显示数组的值

使用此活动:

public class MainActivity extends Activity {

    String[] mTestArray;

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

        mTestArray =   getResources().getStringArray(R.array.planets_array);    

    }

    @Override
    protected void onResume() {
        super.onResume();
        updateTextView();
    }

    private void updateTextView() {
        TextView textView = (TextView)findViewById(R.id.randomTextView); 
        Random random = new Random();

        int maxIndex = mTestArray.length;
        int generatedIndex = random.nextInt(maxIndex);

        textView.setText(mTestArray[generatedIndex]);   
    }
}
将此布局放在res/layout文件夹下,并将其命名为sample.xml

<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"
    tools:context=".MainActivity" >

    <TextView
            android:id="@+id/randomTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"/>
</RelativeLayout>


您希望随机或按顺序显示它们吗?请。检查我的答案。如果你的问题得到了回答,请。接受答案:)你不想要列表视图,对吗?只有文本视图可以在其中随机显示数组值?谢谢您的帮助,是的,我想让它在每次应用程序启动时显示随机值,当应用程序再次运行时,给出另一个随机值。我希望你理解为什么你不想要列表视图?不,我不需要列表视图所有我需要的文本视图每次运行此应用程序时显示字符串数组中的1个随机值。。感谢回复:)然后从活动扩展而不是列表活动。将活动内容设置为具有textView(或直接设置为textView)的布局。然后用我答案上的代码得到随机索引。然后使用该索引获取一个随机数组项。将该数组项的文本设置为textView。谢谢你的帮助我会离开这一点我真的很累我会找到其他的方法抱歉我在android开发方面还是新手:)