简单的TodoList应用程序

时间:2011-05-12 22:04:44

标签: android

我正在尝试从Android开发的书中创建一个简单的待办事项列表应用程序。当我尝试运行它时,我收到“此应用程序已停止工作”消息。我完全不知道为什么,除了它与setContentView(R.layout.main)的致命错误有关。有人可以帮我解决吗?

package com.test.tadalist;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class TadaList extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final ListView listView = (ListView)findViewById(R.id.listView);
        final EditText editText = (EditText)findViewById(R.id.editText);

        final ArrayList<String> todoItems = new ArrayList<String>();
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems);
        listView.setAdapter(adapter);

        editText.setOnKeyListener(new OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent keyEvent) {
                if (keyCode == KeyEvent.KEYCODE_ENTER)
                {
                    todoItems.add(0, editText.getText().toString()); 
                    adapter.notifyDataSetChanged();
                    editText.setText("");
                    return true; 
                }
                return false; 
            }
        }); 
    }
}

layout / main.xml:

<?xml version="1.0" encoding="utf-8"?>
<!--  -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android_layout_height="fill_parent">

    <EditText 
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Entry"
    />

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

你在布局文件中遗漏了很多。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText 
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Entry"
    />

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
</LinearLayout>

答案 1 :(得分:0)

堆栈跟踪会有所帮助,但我想这很可能是因为你的两个视图没有容器。尝试将两个视图封装在LinearLayout

之类的内容中