2014-09-10 50 views
0

我有一个片段从哪里获得访问m_items -layout:无法获得访问活动项目中onItemClick方法

public class MoviesListFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.m_items, container, false); 

我创建了一个自定义适配器(扩大BaseAdapter类),它使用另一布局为属于m_items -layout每个列表项:

listView = (ListView) view.findViewById(R.id.listView); 
MovieAdapter adapter = new MovieAdapter(getActivity(), initData()); 
listView.setAdapter(adapter); 

在布局,其使用所述适配器,存在与所述标识符@+id/textID TextView的。我想在onItemClick - 方法设置文本,使其:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     TextView movie_id = (TextView) view.findViewById(R.id.textID); 
     movie_id.setText("577"); 
    } 
}); 

但得到一个异常显示java.lang.NullPointerException这里:movie_id.setText("577");

据我了解,view.findViewById(R.id.textID);返回null。

这是怎么发生的?

谢谢。

+0

指定textID的布局文件的内容是什么? – AGreenman 2014-09-10 14:25:35

+1

您的适配器'getView()'返回带有'textID'的视图吗? – laalto 2014-09-10 14:27:24

+0

@laalto,非常感谢!现在它可以工作。 – 2014-09-10 14:47:15

回答

1

View参数为onItemClick()对应于您从适配器的getView()返回的View

要从中找到子视图,请确保从getView()返回的视图实际上包含具有给定标识(textID)的视图。