Как сохранить значение edittext в массиве строк? - PullRequest
1 голос
/ 28 мая 2019

Я новичок в Android.Сейчас я занимаюсь разработкой проекта.Мой проект имеет 2 edittext, 1 кнопку и пользовательский просмотр списка.Когда я нажимаю кнопку «ДОБАВИТЬ», я хочу отобразить данные редактирования текста в пользовательском представлении списка.

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);
    }
}
}

1 Ответ

1 голос
/ 28 мая 2019

Исправил ваш метод, пожалуйста, отметьте

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("");
        }
    });
}
...