gpt4 book ai didi

java - Android-从另一个 onButtonClick Activity 将项目添加到 ListView

转载 作者:行者123 更新时间:2023-11-29 05:05:23 25 4
gpt4 key购买 nike

我不确定为什么我的代码不起作用,我查看了该站点上的其余线程并按照说明进行操作,但似乎仍然存在一些错误。

在我的应用程序中,有一个页面供用户输入一些数据,包括日期、描述、持续时间的小时数和分钟数。描述/日期是字符串,小时和分钟是整数。为了简化事情,我现在只关注字符串日期。

用户在 Activity 中输入此数据后,他们将单击“提交”按钮。当他们单击此提交按钮时,我希望用户被带到另一个页面,在那里他们将能够在 ListView 中查看他们提交的历史记录。

在第一个Activity中,当“提交”按钮被点击时,这个方法会被调用:

public void newEntrySubmit(View v)
{
hours = npHours.getValue();
minutes = npMinutes.getValue();
description=String.valueOf(etDescription.getText().toString());
dateOfPractice=String.valueOf(etDate.getText().toString());

Intent i = new Intent(this, PreviousPractices.class);
i.putExtra("Hours", hours);
i.putExtra("Minutes", minutes);
i.putExtra("Description", description);
i.putExtra("dateOfPractice", dateOfPractice);
startActivity(i);

}

在此之后,PreviousPractices 类应该打开。显示了此类的 onCreate 方法:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.previous_practices_layout);

Bundle extras = getIntent().getExtras();
hours = extras.getInt("Hours");
minutes = extras.getInt("Minutes");
description=extras.getString("Description");
date = extras.getString("Date");

practiceList=(ListView)findViewById(R.id.practiceList);
ArrayList<String> listItems = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,listItems);
practiceList.setAdapter(adapter);
listItems.add(date);
adapter.notifyDataSetChanged();
}

问题是当我点击“提交”按钮时,应用程序崩溃了。当我删除

practiceList.setAdapter(adapter);

行,它成功转到正确的 ListView 页面,但是没有显示任何内容(因为没有设置适配器)。

最佳答案

试试这个:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.previous_practices_layout);

Bundle extras = getIntent().getExtras();
hours = extras.getInt("Hours");
minutes = extras.getInt("Minutes");
description=extras.getString("Description");
// date = extras.getString("Date");

practiceList=(ListView)findViewById(R.id.practiceList);
ArrayList<String> listItems = new ArrayList<String>();
listItems.add(description);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,listItems);
practiceList.setAdapter(adapter);
adapter.notifyDataSetChanged();
}

我将您的测试字符串更改为描述,因为未设置日期(之前 Activity 中的“日期”没有额外设置)。此外,我将您的 ArrayList.add() 移动到您的 ListView.setAdapter() 之前。试试这个,看看它是否有效。

关于java - Android-从另一个 onButtonClick Activity 将项目添加到 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542271/

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