gpt4 book ai didi

android - 从另一个 Activity 在 ListView 中添加数据

转载 作者:行者123 更新时间:2023-11-30 03:30:59 28 4
gpt4 key购买 nike

我正在做一个从 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”的 Controller

    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.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" >

<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

}

非常感谢!!!

最佳答案

有几种方法可以做到这一点。最直接的是 Bundle 你的数据并传递它directly through the Intent .或者,您可以将它们存储在 SQLite Database 中。 .

流程看起来像这样:

  • Activity A在本地或 SQLite 数据库中记录和存储选定的字符串
  • 可选:通过 Bundle包含历史 History Activity
  • History Activity 中加载数据的 onCreate .如果你通过 Intent 传递它, 使用 getIntent().getExtras() .如果你使用 SQLite,你可能最终会使用一个简单的 ContentProvider .

如果您希望永久存储历史记录,无论您使用何种方法,都需要使用 SQLite 数据库。在那种情况下,我建议只使用数据库来加载历史记录。如果您想要持久存储,我会选择 IntentBundle .

此时,您只需将 List<String>插入适配器并调用您的 ListViewsetAdapter()功能。

关于android - 从另一个 Activity 在 ListView 中添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478883/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com