Я создаю listView с использованием SimpleAdapter, но при нажатии на элементы я получаю исключение приведения класса. В методе onItemClick я пытаюсь получить ссылку на мой класс Customer в тот момент, только получая исключение приведения класса, которое я вижу в журнале монитора Android.,
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ListView listView;
ArrayList<HashMap<String, String>> data;
SimpleAdapter adapter;
Customer customer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data=new ArrayList<>();
data.add(new Customer("Cusomer Name1", "customer1 Name").toHasMap());
data.add(new Customer("Cusomer Name2", "customer2 Name").toHasMap());
String[] hasMapProperties={"FirstName", "LastName"};
int[] texfields={R.id.list_item_customer2_firstname,R.id.list_item_customer2_secndname};
adapter=new SimpleAdapter(this,data,R.layout.list_item_customer_2,hasMapProperties,texfields);
listView=(ListView)findViewById(R.id.main_activity_listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView= (TextView) view.findViewById(R.id.list_item_customer2_firstname);
Customer customer= (Customer) adapter.getItem(position);
Toast.makeText(MainActivity.this,"Clicked " + customer.getFirstname() + " Postion " + position,Toast.LENGTH_SHORT).show();
}
});
}
Клиент
public class Customer {
private final String firstname;
private final String lastname;
public Customer(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
}
public String getFirstname() {
return firstname;
}
public String getLastname() {
return lastname;
}
@Override
public String toString() {
return getFirstname() + "" + getLastname();
}
public HashMap<String,String> toHasMap() {
HashMap<String, String> returnValue=new HashMap<>();
returnValue.put("FirstName",getFirstname());
returnValue.put("LastName",getLastname());
return returnValue;
}
}
Я новичок в разработке Android