Android Simple ToDo列表应用无法正确呈现

时间:2010-12-02 13:15:26

标签: android listview

按照这里的教程创建一个简单的待办事项列表应用程序: http://www.mydroid.apnafundaz.com/2010/07/todolist-application-in-android-step-by-step-guide-with-screen-shots/

已经完成并且没有错误,但是我的应用程序看起来不像那个例子,而是看起来像这样 - 基本上会出现EditText,但是没有ListView包含以前的任务......

因为没有错误,所以我很难找到出错的地方,但是由于我的合作伙伴也在做相同的教程并得出了完全相同的结果,我认为可能存在问题。啧啧 - 任何建议都非常感谢!

以防万一,这是我的java文件:

package com.example.helloworld;

import java.util.ArrayList;
import android.R.string;
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;

public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Inflate your view
    setContentView(R.layout.main);

    // Get references to UI widgets
    ListView myListView = (ListView)findViewById(R.id.myListView);
    final EditText myEditText = (EditText)findViewById(R.id.myEditText);

    // Create the array list of todo items
    final ArrayList<String> todoItems = new ArrayList<String>();

    // Create the array adaptor to bind the array to the listview
    final ArrayAdapter<String> aa;

    aa = new ArrayAdapter<String>(this,                   android.R.layout.simple_list_item_1, 
             todoItems);

    // Bind the array adapter to the listview
    myListView.setAdapter(aa);

    myEditText.setOnKeyListener(new OnKeyListener(){

     public boolean onKey(View v, int keyCode, KeyEvent event){
      if(event.getAction() == KeyEvent.ACTION_DOWN)
       if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
       {
        todoItems.add(0,myEditText.getText().toString());
        aa.notifyDataSetChanged();
        myEditText.setText("");
        return true;
       }
      return false;
     }


    }



    );



}
}

这是我的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/myEditText"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="New to Do Item"
    />
    <ListView
 android:id="@+id/myListView"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
    />
    </LinearLayout>

3 个答案:

答案 0 :(得分:1)

KEYCODE_DPAD_CENTER是一个奇怪的键码选择......你实际上是按这个来将edittext内容添加到列表中吗?这是一个奇怪的选择,因为有些手机没有方向键。尝试将其更改为KEYCODE_ENTER。

答案 1 :(得分:1)

EditText设置android:layout_height="fill_parent"时,进行一项小改动。所以你看不到列表视图。只需将其更改为wrap_content

即可
<EditText
 android:id="@+id/myEditText"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="New to Do Item"
    />

答案 2 :(得分:0)

在第一次启动时,您的列表应为空,因为您没有定义任何先前的待办事项。您是否尝试使用edittext添加待办事项?之后你应该在列表视图中看到它。