更改活动后列表视图消失 [英] List View dissapears after changing activities

查看:88
本文介绍了更改活动后列表视图消失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

几个小时以来,我一直在努力解决有关Java列表视图的问题,这是我正在尝试制作的练习应用程序中的.我在主要活动上有一个列表视图,在从该活动更改并返回到该活动之后,列表视图消失了.我用谷歌搜索,看到人们在改变事物并保存实例,并试图实现它没有成功,但是,这可能是因为我对Java非常陌生.这是代码:

for quite a few hours now, I've been struggling with an issue regarding list views in java in a practice to-do app that I'm trying to make. I have a list view on my main activity and after changing from that activity and back to it, the list view is gone. I googled and saw people changing things and saving instances and tried to implement it with no success, however, that might be because I'm extremely new to java. Here is the code:

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<String>(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);
}

推荐答案

代替此:

lvItems.setAdapter(itemsAdapter);
items.add("Test");

执行此操作:

items.add("Test");
lvItems.setAdapter(itemsAdapter);

您要设置一个空适配器&然后填充数组

you are setting an empty adapter & then filling array

@Skynet指出了另一个问题

And the other problem is pointed by @Skynet thanks for that

这篇关于更改活动后列表视图消失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆