2016-01-20 4 views
0

У меня проблема с моим мышлением. У меня 2 Actvities:Добавить элементы из EditText в образец ListView в Android

Как вы можете видеть, что есть EditText Widgets во второй деятельности. Теперь я хочу, чтобы содержимое их сохранялось в ListView MainActivity, нажав кнопку плавающего действия в MainAddMedActivity.

Я попытался использовать адаптер, но я не мог понять это. Надеюсь, ты поможешь мне. Я использую дополнительный xml для макета в списке.

Это так далеко, что у меня есть:

  1. MainActivity:

    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    
    
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
    
         Intent intent = new Intent(view.getContext(), MainAddMedActivity.class); 
         startActivity(intent); 
        } 
    }); 
    
    
    ListView mainListView = (ListView) findViewById(R.id.listView); 
    listAdapter = new ArrayAdapter<String>(this, R.layout.single_row); 
    mainListView.setAdapter(listAdapter); 
    
    
    String bIntent = getIntent().getExtras().getString("CONTENT_SEARCH_MED"); //And now? 
    
    } 
    
  2. MainAddMedActivity

    private EditText txtSearchMedicament; 
    private EditText txtNumberMedicament; 
    
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_add_med); 
    
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         EditText description = (EditText) findViewById(R.id.txtSearchMedicament); 
         String text = description.getText().toString(); 
         // Now what?! 
        } 
    }); 
    
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    
    this.txtSearchMedicament = (EditText) findViewById(R.id.txtSearchMedicament); 
    this.txtNumberMedicament = (EditText) findViewById(R.id.txtNumberMedicament); 
    
    Intent i = new Intent(this, MainActivity.class); 
    i.putExtra("CONTENT_SEARCH_MED", txtSearchMedicament.getText().toString()); 
    i.putExtra("CONTENT_MED_NR", txtNumberMedicament.getText().toString()); 
    
    } 
    
+0

Вам нужно 'startActivityForResult' - Вот документация http://developer.android.com/training/basics/intents/result.html –

ответ

0

Только один Activity может быть активным в то время, так что у вас будет t o хранить данные в SharedPreferences или базу данных и перезагружать ее, когда возобновляется MainActivity.

+0

Я хотел бы использовать базу данных впоследствии. Похоже, я должен сделать это сначала? – Harrison

+1

Это немного избыточно для чего-то, что просто нужно 'startActivityForResult' –

+0

Согласовано. Это зависит от того, что вы хотите делать с данными, если вы хотите сохранить его в конце концов, тогда имеет смысл хранить его, как только пользователь его вводит, но если вы хотите его только временно, вы должны использовать 'startActivityForResult' и завершите «MainAddMedActivity», когда пользователь вводит данные – TheoKanning