我已经努力了几个小时,但我仍然不明白为什么我最新的 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/