尝试将字符串添加到ListView后引发异常

问题描述

| 我是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,以寻求解决方案。