2013-07-07 23 views
0

我正在製作一個應用程序,當您按下某個按鈕時,它會選擇一個隨機數並根據該數字顯示不同的文本。添加或刪除列表視圖中的字符串

這裏是文件「Escoger.java」onClick方法,它對應於具有Button一個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文件有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)); 

} 
} 

如果我運行它,它似乎與項目「Linux的」「Android」的「視窗」一個ListView,因爲這個文件我做了以下的教程。

我要的是所選擇的名稱(R.string.Comida#)出現了random()的改變「Linux的」「Android」的「視窗」;以及與無限的項目,而不是隻有三個。

你能告訴我我必須使用的代碼嗎? (我很新,在Android編程)。

非常感謝!

+0

getString(R.string.comida)將返回字符串資源。 – techiServices

回答

0

您需要將字符串添加到適配器並通知ListView底層數據已更改。我建議您查看the Android documentation以瞭解如何執行此操作。

0

您可以定義字符串只是你史記類的下方(C++ü稱之爲全局變量)
然後,只需更改與新元素取決於隨機數的任何現有的元素...

還要注意做到使用onSavedInstancestat()功能來保存數據,並使用在onCreate()恢復每當烏爾活動重新啓動.......

你的活動重新啓動,因爲方向變化....你必須使用任何其他應用程序.. 。然後來恢復這個應用程序

+0

對不起,但我正在學習Android編程,並且我不知道如何執行答案的第一部分...(使用取決於隨機數的新元素更改任何預先存在的元素...)您可以請幫幫我? – matiasszarfer