2013-07-04 162 views
1

我正在做一個應用程序,它從strings.xml文件中選擇一個隨機字符串,我想創建一個給你的元素的歷史記錄,所以我使用了一個ListView。從另一個活動添加列表視圖中的數據

那麼,我該如何將這段文字添加到列表中呢?

非常感謝!

(對不起,我英文不好)

++++++++++++++++++++++++++++++++++編輯++++++++++++++++++++++++

對不起,這裏是 「escoger.xml」 文件

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:orientation="vertical" > 

<Button 
    android:id="@+id/btnEscoger" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:onClick="Aleatorio" 
    android:padding="10dp" 
    android:text="@string/btnEscoger" 
    android:textSize="20dp" /> 

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="20dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tvTituloComida" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

    </LinearLayout> 

</ScrollView> 

</LinearLayout> 

這裏是「 escoger.java「文件,」escoger.xml「的控制器

package org.example.app; 

    import java.util.Random; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.TextView; 

    public class Escoger extends Activity implements OnClickListener{ 

TextView tvTituloComida; 
Button btnEscoger; 

int plato; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.escoger); 

    tvTituloComida = (TextView)findViewById(R.id.tvTituloComida); 
    btnEscoger = (Button)findViewById(R.id.btnEscoger); 

    btnEscoger.setOnClickListener(this); 

} 

@Override 
public void onClick(View arg0) { 
    switch(arg0.getId()){ 
    case R.id.btnEscoger: 

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

     if(plato==1){ 
      tvTituloComida.setText(R.string.Comida1); } 
     if(plato==2){ 
      tvTituloComida.setText(R.string.Comida2); } 
     if(plato==3){ 
      tvTituloComida.setText(R.string.Comida3); } 
     if(plato==4){ 
      tvTituloComida.setText(R.string.Comida4); } 

     break; 
    } 
    } 
    } 

」historia.xm L「:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/tvHistorialTilte" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Tilte_History" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:drawSelectorOnTop="false" /> 

</FrameLayout> 

</LinearLayout> 

最後, 」Historia.java「,是什麼我不知道該怎麼辦......

package org.example.app; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

public class Historia extends ListActivity { 

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

      //Code here 

} 

非常感謝您!

+0

首先添加一些代碼,讓我們知道你的確切問題 – codeMagic

+1

對不起,@codeMagic。現在我已經把這些文件。 – matiasszarfer

回答

1

有幾種方法可以做到這一點。最直接的就是Bundle你的數據並通過它directly through the Intent。或者,您可以將它們存儲在SQLite Database中。

的流動將是這個樣子:

  • Activity A記錄和存儲所選擇的字符串在本地或SQLite的DB
  • 可選:在History Activity的傳球Bundle包含歷史History Activity
  • 加載數據onCreate。如果您通過Intent傳遞它,請使用getIntent().getExtras()。如果你使用SQLite,你最終可能會使用簡單的ContentProvider

如果你想在歷史存儲持續,你需要使用一個SQLite數據庫不管你的方法在這裏。在這種情況下,我建議你只需要使用DB加載歷史記錄。如果你不要想要持久存儲,我會去與IntentBundle

此時,您只需將List<String>放入適配器並調用ListViewsetAdapter()函數即可。

相關問題