在ListView中添加或删除字符串

时间:2013-07-07 14:16:15

标签: java android string listview

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

以下是“Escoger.java”文件中的onClick方法,该方法对应于带有Button和一些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;
    }
}

我创建了一个带有ListView的xml文件,这是它的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”,因为我按照教程做了这个文件。

我想要的是通过所选名称(R.string.Comida#)更改“Linux”“Android”“Windows”出现了random();和无限的项目,而不仅仅是三个。

你能告诉我我必须使用的代码吗? (我是 Android 编程的新手。)

非常感谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

另请注意,每当您的活动重启时,请使用onSavedInstancestat()功能保存数据并在onCreate()中使用恢复.......

您的活动重启,因为方向更改....您必须使用任何其他应用...然后来恢复此应用