【问题标题】:Adding or removing Strings in a ListView在 ListView 中添加或删除字符串
【发布时间】:2013-07-04 23:24:24
【问题描述】:

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

这里是文件“Escoger.java”中的onClick方法,对应一个xml文件有一个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" 项,因为这个文件是我按照教程做的。

我想要的是将 "Linux""Android""Windows" 更改为所选名称 (R.string.Comida#) 出现random();,还有无限项,不止三个。

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

非常感谢!

【问题讨论】:

  • getString(R.string.comida) 将返回字符串资源。

标签: java android string listview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 对不起,但我正在学习 Android 编程,我不知道如何做你答案的第一部分......(用你的新元素更改任何预先存在的元素,这取决于随机数字...)你能帮帮我吗?
    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多