我有一个从textviews构建的列表视图。ListView更改文本的项目点击
如果用户点击一个项目列表,被点击项目的文本将被改变,我该怎么做?
我知道如何添加新项目,但改变其文本?我怎样才能做到这一点?
我有一个从textviews构建的列表视图。ListView更改文本的项目点击
如果用户点击一个项目列表,被点击项目的文本将被改变,我该怎么做?
我知道如何添加新项目,但改变其文本?我怎样才能做到这一点?
你可以用AdapterView.OnItemClickListener来做到这一点。实施onItemClick(AdapterView<?> parent, View view, int position, long id)
方法。该view
你在这里经过时,被点击项目的TextView
,所以应该够做
((TextView)view).setText("Hey, I've just been tapped on!");
首先,你需要添加一个OnItemClickListener您ListView:
mMyListView.setOnClickListener(new OnItemClickListener(
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
));
在OnItemClickListener的方法onItemClick中有参数查看参数。它包含已被点击的ListView的行。
这一观点,你可以得到的TextView,然后更改文本:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView tv = (TextView) view.findViewById(R.id.your_text_view_id);
tv.setText(...);
}
如果您的ListView细胞只包含一个TextView,你可以放心地投视图直接进入一个TextView:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView tv = (TextView) view;
tv.setText(...);
}
mListView.setOnClickListener(new OnItemClickListener(
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView mTextView = (TextView) view;
mTextView.setText("TextView was Clicked");
}
));
那么如果你有一个简单的适配器,将工作:
mListView.setOnClickListener(new OnItemClickListener(
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView mTextView = (TextView) view;
mTextView.setText("TextView was Clicked");
}
));
但是,如果你有一个自定义视图你需要寻找查看更改文本:
mListView.setOnClickListener(new OnItemClickListener(
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//TextView mTextView = (TextView) view;
//mTextView.setText("TextView was Clicked");
((TextView)(view.findViewById(R.id.description))).setText(""TextView was Clicked");
}
));
大,谢谢! – idish