Nun, hier ist ein Beispielcode. Es gibt eine Schaltfläche zum Hinzufügen von Text in der Liste und langes Drücken auf Listenelement wird es entfernen.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Add Item" />
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
dialog_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edit_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:inputType="text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal"
android:weightSum="2" >
<Button
android:id="@+id/button_ok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="OK" />
<Button
android:id="@+id/button_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="CANCEL" />
</LinearLayout>
MainActivity.java
package com.example.listexample;
import java.util.ArrayList;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener,
OnItemLongClickListener {
private ArrayList<String> datasource;
private MyAdapter adapter;
private Dialog dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datasource = new ArrayList<String>();
adapter = new MyAdapter();
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(adapter);
listView.setOnItemLongClickListener(this);
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog_layout);
dialog.findViewById(R.id.button_cancel).setOnClickListener(
MainActivity.this);
dialog.findViewById(R.id.button_ok).setOnClickListener(
MainActivity.this);
dialog.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return datasource.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return datasource.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView) convertView;
if (null == view) {
view = new TextView(MainActivity.this);
view.setPadding(10, 10, 10, 10);
}
view.setText(datasource.get(position));
return view;
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_cancel:
dialog.dismiss();
break;
case R.id.button_ok:
String text = ((EditText) dialog.findViewById(R.id.edit_box))
.getText().toString();
if (null != text && 0 != text.compareTo("")) {
datasource.add(text);
dialog.dismiss();
adapter.notifyDataSetChanged();
}
break;
}
}
@Override
public boolean onItemLongClick(AdapterView<?> listView, View view,
int position, long column) {
datasource.remove(position);
adapter.notifyDataSetChanged();
return true;
}
}
Ich kann nicht herausfinden, wie man das nimmt und in der Lage ist, die Dinge zu verwenden, die es in meiner App zeigt. – Cg2916
Ich weiß, ich brauche eine SQLite-Datenbank. Ich möchte möglichst wenig Extrastücke haben. – Cg2916
Gehen Sie Schritt für Schritt durch dieses Tutorial und sagen Sie mir genau, wo Sie stecken bleiben. Es wird Zeit brauchen, um alles durchzugehen, aber das muss getan werden. In Bezug auf den Code enthält dieses Tutorial überhaupt keinen Fluff (obwohl ich zugeben werde, dass es in Bezug auf Erklärungen sehr wortwörtlich ist). Du brauchst einen DB-Adapter, da geht wirklich nichts. Machen Sie zuerst das Tutorial, dann kümmern Sie sich um das Erstellen einer Datenbank mit Ihrem Text bereits dort. –