У меня есть ListView
, который я заполняю, используя FirebaseListAdapter
. Теперь я хочу, чтобы OnItemClickListener
отображал значение элемента, нажатого (текст, отображаемый на элементе) в Toast
.Как получить значение элемента ListView, заполненного FirebaseListAdapter
ListView listView;
ListAdapter listAdapter;
mFirebaseRef = new Firebase("https://<firebase root ref>/posts");
mFirebaseQuery = mFirebaseRef.orderByChild("author_id").equalTo(id); //`id` is a variable defined earlier
listAdapter = new FirebaseListAdapter<Post>(this, Post.class, android.R.layout.simple_list_item_, mFirebaseQuery) {
@Override
protected void populateView(View view, Post post) {
String postTopic = post.getTopic();
((TextView) view.findViewById(android.R.id.text1)).setText(postTopic);
}
};
listView = (ListView) findViewById(R.id.postsList);
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String topic = String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(getApplicationContext(), "List Item Value: "+topic, Toast.LENGTH_LONG).show();
}
});
Вместо возвращения текст, отображаемый на элементе (как в случае, если ArrayAdapter
используется), String.valueOf
возвращает некоторую ссылку на класс модели я использую - Post.class
.
Результат примерно такой: [email protected]
Может ли кто-нибудь сказать мне, как получить значение элемента списка в этом случае?