Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Resume
126 / 116 / 41
Регистрация: 08.11.2013
Сообщений: 657
Записей в блоге: 5
#1

Получить индекс элемента в кастомном списке - Программирование Android

03.12.2015, 16:13. Просмотров 194. Ответов 4
Метки нет (Все метки)

Добрый день. У меня имеется кастмоный список, состоящий из двух и более элементов. Например, я кликнул по 2 элементу списка, длина которого равна 4.
Как можно получить индекс элемента, который был нажат.
Подскажите пожалуйста.

Код элемента для кастомного списка:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="120dp"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:orientation="horizontal" >
        <TextView
            android:id="@+id/listitem_date"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_sum"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_type"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/listitem_description"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="left|center_vertical"
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_marginLeft="10dp"/>
    </LinearLayout>
</LinearLayout>
Код, где находится ListView:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.lesha.myapplication.IncomeActivity">
    
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="380dp"
        android:id="@+id/listViewIncome"
        android:layout_below="@+id/Settings"
        android:layout_alignParentStart="true" />
 
    </RelativeLayout>
Класс, где выводится список:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.example.lesha.myapplication;
 
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
 
import java.util.List;
 
public class IncomeActivity extends AppCompatActivity {
    DatabaseHandler db;
    Button deleteData;
    ListView lvMain;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_income);
                db= new DatabaseHandler(this);
        deleteData = (Button)findViewById(R.id.buttonDeleteIncome);
        DeleteData();
        List<Event> events = db.getAllEventsIncome();
        if(events.size()!=0){
                lvMain = (ListView) this.findViewById(R.id.listViewIncome);
                lvMain.setAdapter(new BoxAdapter(this, events));
    }
        else{
            Toast.makeText(IncomeActivity.this, "List of incomes is empty", Toast.LENGTH_LONG).show();
        }
}
}
Добавлено через 41 минуту
И имеется класс с переменными:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.example.lesha.myapplication;
 
public class Event {
   String _sum;
    String _type;
    String _description;
    String _date;
 
    public Event(){
    }
 
    public Event(String Date, String Sum, String Type, String Description){
        _sum = Sum;
        _type = Type;
        _description = Description;
        _date = Date;
    }
    public String getDate(){
        return this._date;
    }
 
    public void setDate(String Date){
        this._date = Date;
    }
 
    public String getSum(){
        return this._sum;
    }
 
    public void setSum(String Sum){
        this._sum = Sum;
    }
 
    public String getType(){
        return this._type;
    }
 
    public void setType(String Type){
        this._type = Type;
    }
 
    public String getDescription(){
        return this._description;
    }
 
    public void setDescription(String Description){
        this._description = Description;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2015, 16:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить индекс элемента в кастомном списке (Программирование Android):

Получить текст из одного TextView в кастомном ListView - Программирование Android
Есть кастомный ListView, в котором есть картинка и два TextView, как при нажатии на элемент этого списка получить текст допустим второго...

OnClickListner на кастомном listview - Программирование Android
Здравствуйте такой вопрос есть кастомный список его код: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;RelativeLayout...

Фильтрация в кастомном SimpleCursorAdapter - Программирование Android
Здравствуйте. вот Активити public class MainActivity extends AppCompatActivity { SQLiteDatabase database; ...

SetBackgroundColor в кастомном ListView - Программирование Android
В кастомном ListView подсвечиваю строки через setBackgroundColor() или &quot;android:background&quot; Если нажимаю на обычную строку, то она...

Получить индекс массива структур - Программирование Android
Здравствуйте, такой вопрос, есть например такая структура public static class Room{ public int id; public...

Как получить из ListArray индекс? - Программирование Android
Добрый день, уважаемые форумчане. Для внесения данных в ArrayList использую отдельный класс и сохраняется несколько типов данных (date,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
03.12.2015, 16:17 #2
Java
1
2
3
4
5
6
        lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // тут тебе и позиция и вьюшка на которую кликнули
            }
        });
Resume
126 / 116 / 41
Регистрация: 08.11.2013
Сообщений: 657
Записей в блоге: 5
03.12.2015, 17:41  [ТС] #3
Пытаюсь ввести на экран индекс, но у меня получается.
Java
1
2
3
4
5
6
7
8
9
10
lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                AlertDialog.Builder builder = new AlertDialog.Builder(IncomeActivity.this);
                builder.setCancelable(true);
                builder.setTitle("index");
                builder.setMessage(position);
                builder.show();
            }
        });
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,746
Завершенные тесты: 1
03.12.2015, 17:45 #4
Java
1
builder.setMessage("" + position);
Resume
126 / 116 / 41
Регистрация: 08.11.2013
Сообщений: 657
Записей в блоге: 5
03.12.2015, 19:19  [ТС] #5
Спасибо за помощь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 19:19
Привет! Вот еще темы с ответами:

Поиск по ListView основанному на кастомном адаптере - Программирование Android
Есть кастомный адаптер. ListView сделан на его основе. Данные загружаются из БД. Делаю поиск по позициям листа. Дописал в класс кастомного...

Вывод информации в зависимости от выбранной позиции элемента в списке - Программирование Android
Всем привет! Такой вопрос... Есть главная активити со списком, при нажатии на элемент которого пользователь перемещается на новый экран с...

ListView ячейки, получить Id элемента из SQLite - Программирование Android
есть база данных SQLITE. некоторые элементы БД выводятся в ListView через адаптер и вспомогательный XML. моя задача - в onItemClick перейти...

Как получить текст элемента списка? - Программирование Android
как получить текст элемента списка, этот текст находится в TextView в разметке элемента. А получить текст нужно в обработчике нажатия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2015, 19:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru