android - 如何将edittext值存储在字符串数组中?
问题描述
我是安卓新手。现在我正在开发一个项目。我的项目有 2 个编辑文本、1 个按钮和一个自定义列表视图。当我单击添加按钮时,我想在自定义列表视图中显示我的 edittext 数据。
MainActivity.java
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edt1,edt2;
ListView itemsListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button) findViewById(R.id.add_id);
edt1=(EditText) findViewById(R.id.credit_id);
edt2=(EditText) findViewById(R.id.gpa_id);
itemsListView = (ListView)findViewById(R.id.list_view_items);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomListAdapter adapter = new
CustomListAdapter(MainActivity.this, generateItemsList());
itemsListView.setAdapter(adapter);
edt1.setText("");
edt2.setText("");
}
});
}
private ArrayList<Item> generateItemsList() {
String itemName=edt1.getText().toString();
String itemDescription=edt2.getText().toString();
ArrayList<Item> list= new ArrayList<>();
Item item=new Item(itemName,itemDescription);
item.getItemName();
item.getItemDescription();
list.add(item);
return list;
}
}
CustomListAdapter.java
public class CustomListAdapter extends BaseAdapter {
private Context context;
private ArrayList<Item> items;
public CustomListAdapter(Context context, ArrayList<Item> items) {
this.context = context;
this.items = items;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView =
LayoutInflater.from(context).inflate(R.layout.layout_list_view_row_items,
parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Item currentItem = (Item) getItem(position);
viewHolder.itemName.setText(currentItem.getItemName());
viewHolder.itemDescription.setText(currentItem.getItemDescription());
return convertView;
}
private class ViewHolder {
TextView itemName;
TextView itemDescription;
public ViewHolder(View view) {
itemName = (TextView)view.findViewById(R.id.text_view_item_name);
itemDescription =(TextView)view.findViewById(R.id.text_view_item_description);
}
}
}
解决方案
更正了你的方法,请检查
private ArrayList<Item> generateItemsList(){
String itemName=edt1.getText().toString();
String itemDescription=edt2.getText().toString();
ArrayList<Item> list=new ArrayList<String>();
Item item=new Item();
item.setName(itemName);
item.setDescription(itemDescription);
list.add(item);
return list;
}
此方法将在列表中返回当前项目名称和项目描述。
声明一个全局arraylist
来保存多个条目 像这样
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edt1, edt2;
ListView itemsListView;
ArrayList<Item> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.add_id);
edt1 = (EditText) findViewById(R.id.credit_id);
edt2 = (EditText) findViewById(R.id.gpa_id);
itemsListView = (ListView) findViewById(R.id.list_view_items);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String itemName = edt1.getText().toString();
String itemDescription = edt2.getText().toString();
Item item = new Item(itemName, itemDescription);
item.getItemName();
item.getItemDescription();
list.add(item);
CustomListAdapter adapter = new
CustomListAdapter(MainActivity.this, list);
itemsListView.setAdapter(adapter);
edt1.setText("");
edt2.setText("");
}
});
}
}
推荐阅读
- java - 使用模式匹配 instanceof 和 switch 表达式的 Gradle Java 编译错误
- drupal - 将一个类型的内容引用到另一个常量类型
- unit-testing - EFCore xunit 断言 .Include 是否被调用
- python - “未找到 Python,但可以从 Microsoft 商店安装”
- linux - 如何使用sed将双引号保留在双引号中
- r - 2 个样品,无需替换原始样品
- spring-boot - 如何将 Spring Security OAuth2 与 Apache Wicket 一起使用?
- javascript - 您可以将 html 直接插入 r shiny 中的 navbarPage 吗?
- python - 即使创建了模块,也找不到 Python 模块
- watchkit - XCode 12.5 无法部署到配对手表的手机 - 设备“(null)”未在您的开发者帐户中注册