Получение позиции 0 при нажатии на элемент в ListView
Я пытаюсь отправить позицию из позиции Fragment
для Activity
, но я всегда получаю invoiceId 0
каждый раз, когда я выбираю элемент в listView.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Intent seperateView = new Intent(rootView.getContext(),SeperateViewForDeliveryList.class);
seperateView.putExtra("invoiceId", listView.getItemAtPosition(position).toString());
startActivity(seperateView);
}
});
listView.setAdapter(deliveryListAdapter);
return rootView;
В классе деятельности
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_seperate_view_for_delivery_list);
invoiceId = getIntent().getExtras().getString("invoiceId");
Toast.makeText(this, "invoiceID " + invoiceId, Toast.LENGTH_SHORT).show();
}
4 ответа
Мы также можем передать целочисленное значение в Intent
, Попробуй это:
seperateview.putExtra("invoiceId",listview.getItemAtPosition(position));
getIntent().getIntExtra("invoiceId",0);
Использовать этот
seperateview.putExtra("invoiceId",String.valueOf(position));
getItemAtPosition
возвращает объект данных, связанных с указанной позицией в списке, в то время как position
само по себе то, что вы хотите.
Измените свой код на
seperateView.putExtra("invoiceId", String.valueOf(position));
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Intent seperateview=new Intent(rootView.getContext(),SeperateViewForDeliveryList.class);
seperateview.putExtra("invoiceId",parent.getItemAtPosition(position).toString());
startActivity(seperateview);
}
});
listview.setAdapter(deliveryListAdapter);
return rootView;
Попробуй это