Добавление пользовательского ввода из «Редактировать текст в список»

Я пытаюсь получить пользовательский ввод из «Редактировать текст в виде списка», я видел ответ на этот похожий вопрос, но я не могу понять это

Я пробовал это, не получал ошибок от IDE, но он не работает

public class ListtestActivity extends Activity { /** Called when the activity is first created. */ Button bt; EditText et; TextView tv; ListView lv; ArrayAdapter<String> adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt = (Button) findViewById(R.id.button1); et = (EditText) findViewById(R.id.editText1); tv = (TextView) findViewById(R.id.textView1); lv = (ListView) findViewById(R.id.listView1); String input = et.getText().toString(); String[] values = new String[] {"", input}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values); lv.setAdapter(adapter); 

Пробовал также следующее

 public class ListtestActivity extends Activity { ArrayAdapter<String> m_adapter; ArrayList<String> m_listItems = new ArrayList<String>(); /** Called when the activity is first created. */ Button bt; EditText et; TextView tv; ListView lv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt = (Button) findViewById(R.id.button1); et = (EditText) findViewById(R.id.editText1); tv = (TextView) findViewById(R.id.textView1); lv = (ListView) findViewById(R.id.listView1); m_adapter = new ArrayAdapter<String>(this, R.layout.main, m_listItems); lv.setAdapter(m_adapter); final String input = et.getText().toString(); bt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub m_listItems.add(new String(input)); m_adapter.notifyDataSetChanged(); } }); 

Любая помощь будет принята с благодарностью

Спасибо

* Очень новый для Android / Java / SO

Во втором фрагменте кода измените строку m_adapter

  m_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, m_listItems); 

Затем добавьте строку String в m_listItems

 bt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String input = et.getText().toString(); if(null!=input&&input.length()>0){ m_listItems.add(input); m_adapter.notifyDataSetChanged(); } } }); 

Вы получаете значение EditText при создании своей активности, и оно пустое. Поместите строку, в которой вы объявляете «ввод» в ваш слушатель onClick.

 bt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub final String input = et.getText().toString(); m_listItems.add(new String(input)); m_adapter.notifyDataSetChanged(); } }); 

Попробуйте добавить String к адаптеру вместо listview:

 m_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, m_listItems);//you can delete your previous initialisation bt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String strAddMe = et.getText().toString(); if(strAddMe != null) m_listItems.add(strAddMe); m_adapter.notifyDataSetChanged(); } } }); 

Поскольку список знает об адаптере, адаптер должен знать о содержании, которое он «адаптирует» к списку. Как только вы узнаете, что это значит, вы можете без проблем использовать адаптеры;)

Кроме того, вы должны прочитать editText, как только вам понадобится его ввод.