按照这里的教程创建一个简单的待办事项列表应用程序: 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>
答案 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添加待办事项?之后你应该在列表视图中看到它。