I am trying to display specific CSV content for an item with a click, but with my current code, I can only display the entire CSV file. For example, when I click on level 2, the entire CVS list is displayed, but I am trying to show only level 2 CSV elements.
This is my first look:

This is the view I get when I click on level 2:

But it also displays level 1 CSV elements, how can I only display level 2 elements? And when Level 1 is clicked, how do I display only Level 1 items? etc.
MainActivity.java
public class MainActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
}
Here is my CSVFile.java file
public class CSVFile { InputStream inputStream; public CSVFile(InputStream inputStream){ this.inputStream = inputStream; } public List<String[]> read(){ List<String[]> resultList = new ArrayList<String[]>(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); try { String csvLine; while ((csvLine = reader.readLine()) != null) { String[] row = csvLine.split(","); resultList.add(row); } } catch (IOException ex) { throw new RuntimeException("Error in reading CSV file: "+ex); } finally { try { inputStream.close(); } catch (IOException e) { throw new RuntimeException("Error while closing input stream: "+e); } } return resultList; } }
My ItemArrayAdapter.java class
public class ItemArrayAdapter extends ArrayAdapter<String[]> { private List<String[]> stimuliList = new ArrayList<String[]>(); static class ItemViewHolder { TextView level_number; TextView stimuli_name; } public ItemArrayAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); } @Override public void add(String[] object) { stimuliList.add(object); super.add(object); } @Override public int getCount() { return this.stimuliList.size(); } @Override public String[] getItem(int index) { return this.stimuliList.get(index); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ItemViewHolder viewHolder; if (row == null) { LayoutInflater inflater = (LayoutInflater) this.getContext(). getSystemService(Context.LAYOUT_INFLATER_SERVICE); row = inflater.inflate(R.layout.single_list_item_view, parent, false); viewHolder = new ItemViewHolder(); viewHolder.level_number = (TextView) row.findViewById(R.id.level_number); viewHolder.stimuli_name = (TextView) row.findViewById(R.id.stimuli_name); row.setTag(viewHolder); } else { viewHolder = (ItemViewHolder)row.getTag(); } String[] stat = getItem(position); viewHolder.level_number.setText(stat[0]); viewHolder.stimuli_name.setText(stat[1]); return row; } }
SingleListItem.java
public class SingleListItem extends Activity{ private ListView listView; private ItemArrayAdapter itemArrayAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.single_list_item_view); TextView txtList = (TextView) findViewById(R.id.list_label); Intent i = getIntent();
And finally, a quick look at my CSV file, stimulis.csv
level 1,feu level 1,fΓͺte level 2,blanc level 2,blague ...
Is it possible?