[英]Show the text from EditText on ListView
我的项目中有一个按钮、一个editText 和一个listView。 function 我想实现的是,当我在editText中输入一些单词并单击按钮时,我输入的单词需要在listView中。
这是我的代码。 调试后error: incompatible types: String cannot be converted to String[]
public class MainActivity extends AppCompatActivity {
private String[] str = new String[10];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.list_view); //build listview
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
listView.setAdapter(adapter);
}
public void sendMessage(View view){
EditText editText = (EditText) findViewById(R.id.editText);
str = editText.getText().toString();
}
}
以下是您想要的工作代码。
第 1 步 -> 在编辑文本中添加数据
第2步 - >点击提交按钮
第 3 步 -> 添加的数据将显示在列表视图中
public class MainActivity extends AppCompatActivity {
private List<String> str = new ArrayList<>();
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = findViewById(R.id.list_view); //build listview
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
listView.setAdapter(adapter);
}
public void sendMessage(View view) {
EditText editText = findViewById(R.id.editText);
str.add(editText.getText().toString());
adapter.notifyDataSetChanged();
editText.setText("");
}
}
试试这个方法
public class MainActivity extends AppCompatActivity {
private List<String> str = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.list_view); //build listview
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
listView.setAdapter(adapter);
}
public void sendMessage(View view){
EditText editText = (EditText) findViewById(R.id.editText);
String str1 = editText.getText().toString();
str.add(str1);
}
}
错误error: incompatible types: String cannot be converted to String[]
是因为str = editText.getText().toString();
在这里,您试图错误地将字符串分配给字符串数组
您需要做的是使用String[]
的ArrayList
,因为它比String[]
动态且高效
和
str = editText.getText().toString();
做arrayList.add(ditText.getText().toString());
在您的情况下,您使用的是大小为 10 的
String[]
数组。现在,如果您想从ListView
中的EditText
添加字符串,则必须添加如下所示。
public class MainActivity extends AppCompatActivity {
private String[] str = new String[10];
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.list_view); //build listview
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, str);
listView.setAdapter(adapter);
}
public void sendMessage(View view){
EditText editText = (EditText) findViewById(R.id.editText);
if(count < str.length){
str[count] = editText.getText().toString();
count++;
}
}
}
为什么你会出错?
您收到错误是因为您将 String 数组设置为字符串。 但是如果要在字符串数组中添加字符串,则必须为数组指定 position。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.