从Android中的数组中获取随机字符串并将其放在文本视图中

时间:2017-07-14 15:24:57

标签: android

我有一个小项目来创建一个NameSurnameEmail数组,我在值

中使用xml创建了

这是我的名为Name的xml,其字符串名为names

<resources>
    <string name="names">
        <item>Ivan</item>
        <item>Santiago</item>                    
        .....
    </string>
</resources>

这是我的名为Surnames的XML,带有名为姓氏的字符串

<resources>
    <string name="surnames">
        <item>Rodríguez</item>
        <item>Gómez</item>
        <item>López</item>
        .....
    </string>
</resources>

enter image description here

public class Registro extends AppCompatActivity implements View.OnClickListener {

    private TextView Nombre,Apellido,Correo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registro);
        //Seteamos las Cajas de Texto
        Nombre = (TextView) findViewById(R.id.txtNombre);
        Apellido = (TextView) findViewById(R.id.txtApellido);
        Correo = (TextView) findViewById(R.id.txtCorreo);
        //Ponemos en Modo de Escucha al Boton
        findViewById(R.id.btnGenerar).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

    }
}

我想从XML数组中随机选择名称并在文本视图中显示它们。

2 个答案:

答案 0 :(得分:2)

将您的名字放在字符串数组中:

<resources>
    <string-array name="nomes">
        <item>Ivan</item>
        ...
    </string-array>
    ...
</resources>

然后使用Random从数组中获取随机名称:

private String[] names;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    names = getResources().getStringArray(R.array.nomes);
}

@Override
public void onClick(View v) {
    int randomIndex = new Random().nextInt(names.length);
    String randomName = names[randomIndex];
    yourTextView.setText(randomName);
}

答案 1 :(得分:0)

您可以尝试这样的事情:

String[] array = context.getResources().getStringArray(R.array.your_array);
String randomString = array[new Random().nextInt(array.length)];

希望这有帮助