我想將項目添加到編輯文本下方的列表視圖。 這個完美的作品。如何使用刪除按鈕從列表視圖刪除項目android
現在我想能夠刪除一些條目。這是我無法弄清楚它是如何完成的。我正在執行刪除按鈕onclicklistener
,但程序不斷崩潰。我認爲這是因爲刪除按鈕不存在。 我試着在網上找到東西,但從來沒有得到我可以使用的答案。 我可以幫助我,這將是一個巨大的幫助。
PS:並非所有的代碼是從我這裏,發現了一些示例代碼上:http://wptrafficanalyzer.in/blog/dynamically-add-items-to-listview-in-android/
這是我的主要活動:
/** Note that here we are inheriting ListActivity class instead of Activity class **/
public class MainActivity extends ListActivity {
Button del;
ListView lv;
/** Items entered by the user is stored in this ArrayList variable */
ArrayList<String> list = new ArrayList<String>();
/** Declaring an ArrayAdapter to set items to ListView */
ArrayAdapter<String> adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Setting a custom layout for the list activity */
setContentView(R.layout.main);
del = (Button) findViewById(R.id.removeButton);
/** Reference to the button of the layout main.xml */
Button btn = (Button) findViewById(R.id.btnAdd);
/** Defining the ArrayAdapter to set items to ListView */
adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.nameText, list);
/** Defining a click event listener for the button "Add" */
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
EditText edit = (EditText) findViewById(R.id.txtItem);
list.add(edit.getText().toString());
edit.setText("");
adapter.notifyDataSetChanged();
}
};
del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int pos = v.getId();
System.out.println(pos);
Object toRemove = adapter.getItem(pos);
adapter.remove(toRemove);
}
});
/** Setting the event listener for the add button */
btn.setOnClickListener(listener);
/** Setting the adapter to the ListView */
setListAdapter(adapter);
}
}
這裏是我的xml文件: 的main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/txtItem"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="@string/hintTxtItem"
/>
<Button
android:id="@+id/btnAdd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lblBtnAdd"
android:layout_toRightOf="@id/txtItem"
android:onClick="removeAtomPayOnClickHandler"
/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txtItem"
/>
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txtItem"
android:text="@string/txtEmpty"
android:gravity="center_horizontal"
/>
</RelativeLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/nameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp"
android:textSize="20sp" >
</TextView>
<Button
android:id="@+id/removeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/remove"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
的logcat:
11-12 17:37:57.637: D/AndroidRuntime(302): Shutting down VM
11-12 17:37:57.637: W/dalvikvm(302): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-12 17:37:57.667: E/AndroidRuntime(302): FATAL EXCEPTION: main
11-12 17:37:57.667: E/AndroidRuntime(302): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.additemsdynami/com.example.additemsdynami.MainActivity}: java.lang.NullPointerException
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.os.Handler.dispatchMessage(Handler.java:99)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.os.Looper.loop(Looper.java:123)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-12 17:37:57.667: E/AndroidRuntime(302): at java.lang.reflect.Method.invokeNative(Native Method)
11-12 17:37:57.667: E/AndroidRuntime(302): at java.lang.reflect.Method.invoke(Method.java:521)
11-12 17:37:57.667: E/AndroidRuntime(302): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-12 17:37:57.667: E/AndroidRuntime(302): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-12 17:37:57.667: E/AndroidRuntime(302): at dalvik.system.NativeStart.main(Native Method)
11-12 17:37:57.667: E/AndroidRuntime(302): Caused by: java.lang.NullPointerException
11-12 17:37:57.667: E/AndroidRuntime(302): at com.example.additemsdynami.MainActivity.onCreate(MainActivity.java:69)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-12 17:37:57.667: E/AndroidRuntime(302): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-12 17:37:57.667: E/AndroidRuntime(302): ... 11 more
NullPointerException異常:■ – user1812765
請加滿** **從您的logcat –
堆棧跟蹤'德爾=(按鈕)findViewById(R.id.removeButton);'< - 這不會在你調用'setContentView()'之前的工作' – dmon