0

我正在制作一个应用程序,当您按下按钮时,它会选择一个随机数,并根据该数字显示不同的文本。

这是onClick文件"Escoger.java"中的方法,它对应于带有 aButton和 some的 xml 文件TextViews

    @Override
public void onClick(View arg0) {
    final Dialog d = new Dialog(this);

    switch(arg0.getId()){
    case R.id.btnEscoger:

        tvTIngredientes.setText(R.string.Title_Ingredientes);
        tvTExplicacion.setText(R.string.Title_Explicacion);

        Random r=new Random();
        plato = r.nextInt(4-1);

        if(plato==1){
            tvTituloComida.setText(R.string.Comida1);
            tvIngredientes.setText(R.string.Ingredientes1);
            tvExplicacion.setText(R.string.Explicacion1); }
        if(plato==2){
            tvTituloComida.setText(R.string.Comida2);
            tvIngredientes.setText(R.string.Ingredientes2);
            tvExplicacion.setText(R.string.Explicacion2); }
        if(plato==3){
            tvTituloComida.setText(R.string.Comida3);
            tvIngredientes.setText(R.string.Ingredientes3);
            tvExplicacion.setText(R.string.Explicacion3); }
        if(plato==4){
            tvTituloComida.setText(R.string.Comida4);
            tvIngredientes.setText(R.string.Ingredientes4);
            tvExplicacion.setText(R.string.Explicacion4); }
        break;

    case R.id.btnSettings:
        d.setTitle(R.string.Setting_Title);
        d.setContentView(R.layout.preferencias);
        d.show();
        break;
    }
}

我制作了一个带有 .xml 的 xml 文件ListView,这里是它的 java 文件,“Historia.java”

package org.example.whatsfordinner;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class Historia extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.historia);

    String[] names = new String[]{"Linux", "Android", "Windows"};
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names));

}
}

如果我运行它,它会出现一个ListView项目"Linux""Android""Windows",因为这个文件是我按照教程完成的。

我想要的是通过选择的名称来更改“Linux”“Android”“Windows”(R.string.Comida#)出现的random();,并且具有无限项,而不仅仅是三个。

你能告诉我我必须使用的代码吗?(我对Android编程很陌生)。

非常感谢!

4

2 回答 2

0

您需要将字符串添加到适配器并通知 ListView 基础数据已更改。我建议您查看Android 文档以了解如何执行此操作。

于 2013-07-07T14:26:06.153 回答
0

您可以在 Historia 类下方定义一个字符串(在C++中,您调用该全局变量)
然后只需使用取决于随机数的新元素更改任何预先存在的元素......

另请注意 ,只要您的活动重新启动,请务必使用onSavedInstancestat()功能保存数据并使用恢复......onCreate()

您的活动重新启动,因为方向改变......你必须使用任何其他应用程序......然后来恢复这个应用程序

于 2013-07-07T14:28:34.723 回答