java - 如何将项目从 Edittext 添加到 ListView ?

标签 java android

我已经努力了几个小时,但我仍然不明白为什么我最新的 edittext 值覆盖了我的旧 ListView 项目。

问题是,假设我在我的 edittext 中键入一个字符串 s1 并按下 add to listview 按钮,然后是字符串 s1进入成功。现在,如果我在编辑文本中键入字符串 s2 并按下 add to listview 按钮,字符串 s2 现在将替换 s1 在 ListView 中,因此现在它只是在我的 ListView 中显示 s2。我该如何解决这个问题?

这是我的代码:

String str=edittext.getText().toString();
List<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(My_activity.this, android.R.layout.simple_list_item_multiple_choice, list);
add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                         if(str.length()!=0) {
                                list.add(str);
                               }

                   listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
                   listView.setAdapter(adapter);
                   adapter.notifyDataSetChanged();
});

编辑:我正在尝试从一个 Activity 中获取输入字符串并尝试将其添加到另一个 Activity 的 ListView 中。这就是问题所在。请帮助我。

第一个 Activity :

public static String str;
add.setOnClickListener(new (new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                             str=edittext.gettext().toString();
}
});

第二个 Activity :

    List<String> list = new ArrayList<String>();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(My_activity.this, android.R.layout.simple_list_item_multiple_choice, list);

    if (Main_activity.i == R.id.event_1 || Main_activity.i == R.id.rem_1) {
     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
     listView.setAdapter(adapter);
 if(str.length()!=0) {
                    list.add(str);
                    adapter.notifyDataSetChanged();
                }
    else{
     Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "No 
     text found", Snackbar.LENGTH_LONG);
     snackbar.show();
    }
    }

最佳答案

public class ListViewExample extends AppCompatActivity {

List<String> list = new ArrayList<String>();
ListView listView;
EditText editText;
ArrayAdapter<String> adapter;
FloatingActionButton fab

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_text_view_example);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    listView = (ListView) findViewById(R.id.listView);
    editText = (EditText) findViewById(R.id.et);
    fab = findViewById(R.id.fab);
    adapter = new ArrayAdapter<String>(ListViewExample.this, android.R.layout.simple_list_item_multiple_choice, list);
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    listView.setAdapter(adapter);

    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String name = editText.getText().toString().trim();
            if(!name.isEmpty()) {
                list.add(name);
                adapter.notifyDataSetChanged();
                editText.setText("");
            }
        }
    });
}

这是我的 Activity ,这是为我工作的。

关于java - 如何将项目从 Edittext 添加到 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56081576/

相关文章:

java - 需要 java 算法的帮助来查找最大值和最小值

android - 程序类型已经存在 : com. android.vending.billing.IInAppBillingService

java - Apache Spark,Java 中使用 List<?> 作为第一个参数的 createDataFrame 示例

java - 如何清除 Java 缓存中的特定文件?

java - 反序列化 Enum,其中包含 Map

android - Cordova File Plugin 创建的文件的位置在哪里?

java - 单击按钮时 Android 应用程序关闭(在自定义注册页面上)

android - Ionic/Cordova SqLite 并不总是在 Play 商店的应用程序更新之间持续存在

android - 不带全屏摄像头的二维码扫描

java - 以编程方式而不是 xml 方式包含时无法获得相同的 View