2016-04-07 12 views
0

私はFirebaseListAdapterを使用して値を設定するListViewを持っています。今度はToastに、OnItemClickListenerにクリックしたアイテムの値(アイテムに表示されているテキスト)を表示します。 Post.class - 代わりに(場合使用さArrayAdapterにあるように)、String.valueOf Iが使用モデルクラスにはいくつかの参照を返すアイテムに表示されたテキストを返すFirebaseListAdapterを通じて入力されたListViewアイテムの値を取得する方法

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(); 
    } 
}); 


出力は次のようになります。[email protected]

この場合、リスト項目の値を取得する方法を教えてもらえますか?

答えて

2

AdapterView.getItemAtPosition()ので、Postオブジェクトを返す:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    Post post = (Post)parent.getItemAtPosition(position); 

    String topic = post.getTopic(); 

    Toast.makeText(getApplicationContext(), "List Item Value: "+topic, Toast.LENGTH_LONG).show(); 
} 
関連する問題