私は配列に値を設定し、それをリストビューに表示する基本的なアプリケーションを持っています。私は、アプリケーションを閉じて、それを再オープンlistviewは空です、あなたはどこに配列を保存しますか?私は共有の設定で多くの投稿を参照してくださいが、そこに配列を格納するための回避策と思われる、また、配列ストレージ上の任意のアンドロイドのドキュメントを見つけることができません?誰でも私に正しい方向に向けることができますか?要求されたようアレイの保存方法は?
私のコード....
public class ListView_Activity extends AppCompatActivity {
ArrayList<String>mylistarray = new ArrayList<>();
String tempdescr;
String tempname;
static final int ADD_NEW_ITEM = 1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_);
/*add the main toolbar and make some changes to format*/
Toolbar mToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
mToolbar.setTitle(R.string.toolbartitle);
mToolbar.setSubtitle(R.string.toolbarsubtitle);
mToolbar.setTitleTextColor(getResources().getColor(R.color.colorWhite));
mToolbar.setSubtitleTextColor(getResources().getColor(R.color.colorAccent));
final ArrayAdapter<String> myadapter = new ArrayAdapter<String>(ListView_Activity.this, R.layout.simple_list_item_1, R.id.row_item_text_view, mylistarray);
/*create array adapter and set to listview*/
final ListView mylistview = findViewById(R.id.mylistview);
mylistview.setAdapter(myadapter);
mylistarray.add("Test");
myadapter.notifyDataSetChanged();
final FloatingActionButton additembutton = findViewById(R.id.floatingActionButton);
additembutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent additem = new Intent(ListView_Activity.this, Create_Item_Activity.class);
startActivityForResult(additem, 1);
}
});
}
/*load options menu to toolbar*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_toolbar, menu);
return true;
}
/*handle options menu click events*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.settings:
//intent here to load settings activity//
return true;
case R.id.Feedback:
Intent Feedbackemail = new Intent(Intent.ACTION_SEND);
Feedbackemail.setType("text/email");
Feedbackemail.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
Feedbackemail.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
Feedbackemail.putExtra(Intent.EXTRA_TEXT,"Dear..."+"");
startActivity(Intent.createChooser(Feedbackemail,"Send Feedback"));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == ADD_NEW_ITEM){
if (resultCode == Activity.RESULT_OK) {
tempdescr = data.getStringExtra("tempdescr");
tempname = data.getStringExtra("tempname");
mylistarray.add(tempdescr);
mylistarray.add(tempname);
}
if (resultCode == Activity.RESULT_CANCELED) {
Toast replacewithcode = Toast.makeText(ListView_Activity.this, "replace with code", Toast.LENGTH_SHORT);
replacewithcode.show();
}
}
}
}
あなたの配列はどこにありますか? – MeHdi
配列はmainactivityで作成され、標準インテントを介して移入され、必要に応じてコードを投稿しますか? – Adam
しかし、配列が主なアクティビティで作成されている場合は、通常、アプリケーションを閉じて再度開くと、再度作成する必要があります。 – FreshD