私のアプリには、「新しい文字列を追加」という文字列が 1 つあるリストビューが 1 つあります。ユーザーがこれを選択すると、Alert ダイアログに 1 つの編集テキストとボタンが表示されます。ユーザーは、このボックスに新しい文字列の名前を書き込む必要があり、ユーザーがボタンをクリックすると、元のリストに追加する必要があります。ここまでやってきました。しかし、私の問題は、ユーザーがこのアプリを閉じて再起動すると、新しく追加された文字列がリストに表示されないことです。共通の好みでこれを行う必要があります。どうすればそれを行うことができますか? これが私のコードです。
MainActivity .java
public class MainActivity extends Activity {
ListView lv;
String add[]=new String[]{"Add new List"};
final private static int DIALOG_LOGIN = 1;
ArrayList<String> arr1;
ArrayAdapter<String> adapter1;
ArrayList<String> arr2 = new ArrayList<String>();
ArrayAdapter<String> adapter2;
int count = 0;
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.listView1);
adapter1 = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, add);
lv.setAdapter(adapter1);
//onLoad();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String data = lv.getItemAtPosition(arg2).toString();
if(data == "Add new List")
{
count = count + 1;
showDialog(DIALOG_LOGIN);
}
}
});
}
@Override
protected Dialog onCreateDialog(int id)
{
AlertDialog dialogDetails = null;
switch (id)
{
case DIALOG_LOGIN:
LayoutInflater inflater = LayoutInflater.from(this);
View dialogview = inflater.inflate(R.layout.dialog, null);
AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
dialogbuilder.setView(dialogview);
dialogDetails = dialogbuilder.create();
break;
}
return dialogDetails;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
case DIALOG_LOGIN:
final AlertDialog alertDialog = (AlertDialog) dialog;
Button btnOk = (Button) alertDialog.findViewById(R.id.btnOk);
final EditText etList = (EditText) alertDialog.findViewById(R.id.etList);
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(etList.length() <= 0)
{
etList.requestFocus();
Toast.makeText(getBaseContext(), "Enter Name of List", 1000).show();
}
else
{
String name = etList.getText().toString();
String newName[] = new String[]{};
if(arr2.contains("Add new List"))
{
arr2.add(name);
Toast.makeText(getBaseContext(), "" + name , 1000).show();
adapter2 = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, arr2);
lv.setAdapter(adapter2);
adapter2.notifyDataSetChanged();
etList.setText("");
Toast.makeText(getBaseContext(), "" + count, 1000).show();
dismissDialog(DIALOG_LOGIN);
}
else
{
arr2.add("Add new List");
arr2.add(name);
adapter2 = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, arr2);
lv.setAdapter(adapter2);
adapter2.notifyDataSetChanged();
etList.setText("");
dismissDialog(DIALOG_LOGIN);
}
}
}
});
break;
}
}
}
activity_main.xml
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
</RelativeLayout>
dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/etList"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:ems="10"
android:hint="@string/etHint" >
<requestFocus />
</EditText>
<Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/etList"
android:text="@string/ok" />
</RelativeLayout>