如何在字符串数组中存储编辑文本值



我是Android的新手。现在我正在开发一个项目。我的项目有 2 个编辑文本、1 个按钮和一个自定义列表视图。当我单击"添加"按钮时,我想在自定义列表视图中显示我的编辑文本数据。

主要活动.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;
}
}

自定义列表适配器.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("");
            }
        });
    }
}

最新更新