问题描述
|
我是android的新手,由于某种原因,我在使用add0 I的add函数时遇到异常。
我知道这个过程应该很简单,但是我找不到我的错误。
我正在尝试将日期和时间记录添加到
ListView
中。
这是我的操作方式:
文件名:ClockTest.java
/* package name here */
/* import section here */
public class ClockTest extends Activity {
/** Called when the activity is first created. */
public int logButtonState;
public int logEntriesCount;
ImageButton logButton;
ImageButton switchButton;
ListView entriesList;
public ArrayAdapter<String> listadapter;
public String logEntries[]={
\"Entry1\",\"Entry2\",\"Entry3\",\"Entry4\",\"Entry5\"};
public String date_info;
public String time_info;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// State: 0=login,1=logout
logButtonState = 0;
logButton = (ImageButton)findViewById(R.id.log_button);
switchButton = (ImageButton)findViewById(R.id.switch_button);
// Infrastructure for entries on-screen presentation
logEntriesCount = 0;
listadapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,logEntries);
entriesList = (ListView)findViewById(R.id.entries_list);
entriesList.setAdapter(listadapter);
// add a click listener to the exit button
logButton.setonClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView timeCaptured = (TextView)findViewById(R.id.timeCaptured);
Calendar c = Calendar.getInstance();
c.setTime(new Date(System.currentTimeMillis()));
date_info = String.valueOf(c.get(Calendar.DAY_OF_MONTH))
+ \".\"
+ String.valueOf(c.get(Calendar.MONTH))
+ \".\"
+ String.valueOf(c.get(Calendar.YEAR));
time_info = String.valueOf(c.get(Calendar.HOUR_OF_DAY))
+ \":\"
+ String.valueOf(c.get(Calendar.MINUTE))
+ \":\"
+ String.valueOf(c.get(Calendar.SECOND));
final String currentTime = asignLogString()
+ \" [\"
+ date_info
+ \" \"
+ time_info
+ \"]\";
logEntriesCount++;
timeCaptured.setText(currentTime);
//listadapter.clear();
// re-arrange on-screen list view
listadapter.add(currentTime);
listadapter.notifyDataSetChanged();
entriesList.setAdapter(listadapter);
}
});
}
}
解决方法
ArrayAdapter的列表不可修改。您将无法向其中添加内容,否则将收到UnsupportedOperationException(根据我的记忆)。
代替使用String [],而使用ArrayList 。
从编辑文本中动态查看android中的Populate Spinner,以寻求解决方案。