ListView的问题?

时间:2017-07-27 15:01:22

标签: android listview

我的问题

我试图创建一个应用程序,您可以使用EditText和ListView将项目添加到列表中。我正在使用this website来提供帮助,因为我没有太多的Android编码经验,但我不得不稍微更改代码,因为我使用的是两个活动而不是一个。它有效,但有一些问题我不知道如何解决。

  1. 您只能添加一个列表项,然后您放入的最后一个列表项将消失并替换为新列表项。
  2. 如果您离开ListView活动,新列表项将消失(我认为这就是为什么会出现这一点)
  3. 我拥有它,所以当你点击其中一个项目时,它会进入一个活动(每个活动进入另一个活动),你只能在将一个项目添加到列表后点击它们。
  4. 我的代码

    Questions.java(ListView活动)

    package com.example.sylvie.dogwise;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.view.View;
    
    public class Questions extends AppCompatActivity {
        ListView listview;
        String[] ListElements = new String[]{
                "How much food should I feed my dog?",
                "How do I teach my dog to sit?"
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_questions);
    
            listview = (ListView) findViewById(R.id.QuestionsList);
    
            final List<String> ListElementsArrayList = new ArrayList<String>(Arrays.asList(ListElements));
            final ArrayAdapter<String> adapter = new ArrayAdapter<String>
                    (Questions.this, android.R.layout.simple_list_item_1, ListElementsArrayList);
            listview.setAdapter(adapter);
            adapter.notifyDataSetChanged();
    
            Bundle newQuestion = getIntent().getExtras();
            if (newQuestion == null) {
                return;
            }
            String QuestionName = newQuestion.getString("QuestionName");
    
            ListElementsArrayList.add(QuestionName);
            adapter.notifyDataSetChanged();
    
            listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    if (position == 0) {
                        Intent myIntent = new Intent(view.getContext(), Question_howmuchfoodshouldifeedmydog.class);
                        startActivityForResult(myIntent, 0);
                    }
    
                    if (position == 1) {
                        Intent myIntent = new Intent(view.getContext(), Question_2.class);
                        startActivityForResult(myIntent, 0 );
                    }
                }
            });
        }
    
        ;
    
        public void backHomeOnClick(View view) {
            Intent b = new Intent(this, HomeScreen.class);
            startActivity(b);
        }
    
        public void askAQuestionOnClick(View view) {
            Intent i = new Intent(this, AskAQuestion.class);
            startActivity(i);
        }
    
        ;
    }
    

1 个答案:

答案 0 :(得分:0)

您在此处插入一个项目:

 String QuestionName = newQuestion.getString("QuestionName");
 ListElementsArrayList.add(QuestionName);

如果您想一次添加多个项目,则可以改为传递列表。

如果您想保留数据,则必须存储数据。检查领域或dbflow上的教程。选择最适合您用例的那个。