2016-10-17 3 views
-2

Итак, я сделал это представление списка с 5-6 элементами. Я установил метод onItemClickListener. Я хочу получить позицию щелчка listView. Например, если на первом месте я должен получить соответствующую позицию и сохранить ее в переменной. Если я нажму на номер два, я должен получить соответствующую позицию и так далее. Я начинающий, поэтому, пожалуйста, объясните.Как получить позицию щелкнутого элемента в виде списка и сохранить его в переменной

final ListView listView = (ListView) findViewById(R.id.listView); 
    ArrayList<String> abcd = new ArrayList<>(); 
    abcd.add("Number One"); 
    abcd.add("Number Two"); 
    abcd.add("Number Three"); 
    abcd.add("Number Four"); 
    abcd.add("Number Five"); 
    abcd.add("Number Six") 
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.list_view); 
    listView.setAdapter(adapter); 

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     int position = listView.getItemIdAtPosition(position); 
     Toast.makeText(MainActivity.this, "Clicked"+position , Toast.LENGTH_SHORT).show(); 
    } 
}); 
+2

'i' позиция щелкнутого элемента. Просто прочитайте документацию по методу, и вы бы знали, что –

+0

int i - это позиция, поэтому сделайте свой тост таким, как этот «Toast.makeText (MainActivity.this,« Clicked »+ i, Toast.LENGTH_SHORT) .show();' –

+0

onItemClick ... {String item = abcd.get (позиция); – elmontoya7

ответ

0

Поместить вас как приватное поле;

private List<String> abcd = new ArrayList<>(); 

и в вашей логике:

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

    abcd.add("Number One"); 
    abcd.add("Number Two"); 
    abcd.add("Number Three"); 
    abcd.add("Number Four"); 
    abcd.add("Number Five"); 
    abcd.add("Number Six") 
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this,R.layout.list_view); 
    listView.setAdapter(adapter); 

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     String selectedElement = abcd.get(i); 
    } 
}); 

selectedElement будет ваш элемент, который вы можете хранить

0

Я хотел бы попробовать это:

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) 
     { 
      String selectedFromList =(String) (listview.getItemAtPosition(position).toString()); 
      Log.d("Selected: ", selectedFromList); 
     } 
    }); 
Смежные вопросы