2016-12-06 4 views
1

У меня есть три действия. В одном Activity я читал данные из CSV и используя ListView, я показываю его в EditText. Теперь я хочу передать значение EditText другому Activity. Что можно сделать для решения этой проблемы?Передать значение EditText из ListView в другую активность

Код:

String dir = Environment.getExternalStorageDirectory() + "/grocery/data/" + spinner.toString(); 

    final File csvfile = new File(dir.toString()); 

    ListView listView = (ListView) findViewById(R.id.listview); 

    MyList adapter = new MyList(getApplicationContext(), R.layout.activity_editfeild); 

    listView.setAdapter(adapter); 


    studentid= (EditText) findViewById(R.id.et_studentid); 
    Schoolname= (EditText) findViewById(R.id.et_schoolname); 
    schoolAdress= (EditText) findViewById(R.id.et_schooladd); 
    studentname=(EditText) findViewById(R.id.et_studentname); 
    fathername= (EditText) findViewById(R.id.et_fathername); 
    mothername= (EditText) findViewById(R.id.et_mothername); 
    studentaddress= (EditText) findViewById(R.id.et_studentadd); 

//Toast.makeText(Editinfo.this, studentid.getText().toString(), Toast.LENGTH_SHORT).show(); 


    FileInputStream inputStream = null; 
    try { 
     inputStream = new FileInputStream(csvfile); 
    } catch (FileNotFoundException e){ 
     e.printStackTrace(); 
    } 

    CSVReader reader = new CSVReader(inputStream); 

    final List<String[]> myList=reader.read(); 

    for (String[] data : myList) { 
     adapter.add(data); 
    } 

    next.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(getApplicationContext(), Editinfo1.class); 

      intent.putExtra("spinner", chosenOption); 

      intent.putExtra("studentid", studentid.getText().toString()); 

      intent.putExtra("schoolname", Schoolname.getText().toString()); 
      intent.putExtra("schooladdress", schoolAdress.getText().toString()); 
      intent.putExtra("studentname", studentname.getText().toString()); 
      intent.putExtra("fathername", fathername.getText().toString()); 
      intent.putExtra("mothername", mothername.getText().toString()); 
      intent.putExtra("studentaddress", studentaddress.getText().toString()); 
      intent.putExtra("myList", (Serializable) myList); 
      //intent.putExtra("mylist", myList); 
      startActivity(intent); 
     } 
    }); 
} 
+0

вы передаете, что позиция элемента списка и ваш ArrayList с помощью намерения и в следующем упражнении вы получите, что ArrayList и положение и получить отдачу от ArrayList, используя полученную позицию. – Shailesh

+0

Спасибо ... вы можете дать краткое представление о том, как пройти позицию позиции –

+0

, пожалуйста, проверьте это http://stackoverflow.com/questions/5374546/passing-arraylist-through-intent – Shailesh

ответ

0

изменить свой адаптер, как следующий код:

Определить новый ArrayList: Private List<String> listItemChosen = new ArrayList<>();

Создать метод, возвращающий список:

private List<String> getSelectedString(){ 
     return listItemChosen; 
    } 

в вашем onClick нравится ниже:

SharedPreferences sharedPreferences = context.getSharedPreferences(Constants.MODE_SHARED, Context.MODE_PRIVATE); 
final SharedPreferences.Editor edit = sharedPreferences.edit(); 
final Gson gson = new Gson(); 

holder.tvItemName.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        listItemChosen.add(itemName); 
        String jsonString = gson.toJson(getSelectedString()); 
        edit.putString(Constants.KEY_SHARED,jsonString); 
        edit.commit(); 
       } 
      }); 

Этот код выше только при добавлении состояния. Каждый щелчок в textview, он всегда сохраняет выбранный элемент в вашем списке.

Если вам нужно удалить элемент, который был добавлен, вы должны добавить параметр снова, как int параметр, сначала щелкните по нему, чтобы добавить элемент, а второй щелчок на том же текстовом изображении он удалит элемент.

У меня есть ссылка, как вам нужно, но HERE с помощью флажка. Но в целом логика все же такая же.

дайте мне знать, если что-то пропустил

+0

спасибо ... это работает .. –

+0

Добро пожаловать. Рад помочь.. –