我不确定为什么我的代码不起作用,我已经查看了本网站上的其余主题并按照说明操作,但似乎仍有一些错误。
在我的应用中,有一个页面供用户输入一些数据,包括日期,描述,小时和持续时间分钟。描述/日期是字符串,小时和分钟是整数。我现在只关注字符串日期来简化事情。
用户在活动中输入此数据后,他们将点击"提交"按钮。当他们单击此提交按钮时,我希望将用户带到另一个页面,在那里他们将能够在ListView中查看其子项目的历史记录。
在第一个活动中,当"提交"单击按钮,将调用此方法:
NSLog(@"%@", [myFractions Print];
在此之后,应该打开PreviousPractices类。显示了此类的onCreate方法:
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);
}
问题在于,当我点击"提交"按钮,应用程序崩溃。当我删除
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();
}
行,它成功转到正确的ListView页面,但是没有显示任何内容(因为没有设置适配器)。
答案 0 :(得分:3)
试试这个:
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();
}
我将测试字符串更改为描述,因为日期未设置(#34;日期&#34;以前的活动中没有额外的日期)。此外,我将您的ArrayList.add()移动到ListView.setAdapter()之前。试试这个,看它是否有效。