Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Позиция нажатого элемента ListView и её получение в запущенном активити

#android #listview #activity #android_bundle


Всем добрый день. 

После нажатия на элемент списка listview, нужно передать его позицию (номер элемента
списка) в другое активити. Использую position, которая передается в onListItemClick.
Но в другое активити почему то передается null. 

Помогите разобраться))

public class MainActivity extends ListActivity {




@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Intent intent = new Intent(getApplicationContext(), AfterClickActivity.class);
    intent.putExtra("position",position);                                       
    startActivity(intent);

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    Integer[] array = new Integer[100];
    for (int i = 0; i <100 ; i++) {
        array[i] = i;

    }
    super.onCreate(savedInstanceState);
    ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),R.layout.list_item,R.id.tvText,array);
    setListAdapter(adapter);


}

public class AfterClickActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_after_click);

    String position = getIntent().getStringExtra("position");
    TextView view = (TextView)findViewById(R.id.tvView1);
    view.setText(String.valueOf(position));
}

    


Ответы

Ответ 1



Получайте во втором активити так: int position = getIntent().getIntExtra("position", 0); При передаче через Intent важно соблюдать типы. Вы помещаете int, а пытаетесь потом получить String

Комментариев нет:

Отправить комментарий