列表在更改活动后查看消失
现在已经有好几个小时了,我一直在努力解决一个关于java中列表视图的问题,我正在努力做一个实践性的应用程序。 我有一个关于我的主要活动的列表视图,在从该活动更改并返回到它之后,列表视图消失了。 我google了,看到人们改变事物并保存实例并试图实现它但没有成功,但是,这可能是因为我对java非常新。 这是代码:
public class MainActivity extends AppCompatActivity { private ArrayList items; private ArrayAdapter itemsAdapter; private ListView lvItems; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lvItems = (ListView) findViewById(R.id.lvItems); items = new ArrayList(); itemsAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); lvItems.setAdapter(itemsAdapter); items.add("Test"); setupListViewListener(); } // Attaches a long click listener to the listview private void setupListViewListener() { lvItems.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView adapter, View item, int pos, long id) { // Remove the item within array at position items.remove(pos); // Refresh the adapter itemsAdapter.notifyDataSetChanged(); // Return true consumes the long click event (marks it handled) return true; } });} public void onChangeView(View v) { setContentView(R.layout.activity_create); } public void onConfirmItem(View v) { EditText etNewItem = (EditText) findViewById(R.id.etNewItem); String itemText = etNewItem.getText().toString(); itemsAdapter.add(itemText); etNewItem.setText(""); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bar MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu); return super.onCreateOptionsMenu(menu); }
您在多个位置使用setContentView(),但您没有在其中设置适配器。 您可以在事件(UI)线程上运行时调用setContentView。 请注意,执行此操作时,需要重置通过调用findViewById
初始化的任何字段。
而不是这个:
lvItems.setAdapter(itemsAdapter); items.add("Test");
做这个 :
items.add("Test"); lvItems.setAdapter(itemsAdapter);
你正在设置一个空的适配器然后填充数组
另一个问题是由@Skynet指出的,谢谢你
- 如何将sharedpreferences文件从内部存储传输到外部存储?
- Google Drive SDK例外
- 如何设置标题栏的背景?
- httpclient(phpmyadmin)无法在Android 4.0+上运行
- 两个共享共同function的活动
- Android Studio 2.3错误:无法加载“com.google.common.collect.ImmutableSet”类
- java.lang.UnsupportedOperationException:无法转换为color:type = 0x1
- AsyncTask get()方法无法正常工作
- java.lang.StringIndexOutOfBoundsException:在= sqlite数据库中索引= 0 length = 0